From 0346a8cb8fab91d11efc05de24f2916189e15e2d Mon Sep 17 00:00:00 2001 From: Martin Spott <martin@sphere.telascience.org> Date: Mon, 13 Dec 2010 11:35:33 -0800 Subject: [PATCH 1/4] Intermediate step while trying to clean CORINE data .... --- gisscripts/grass01import.sh | 3 ++- gisscripts/grass03patch.sh | 3 ++- gisscripts/grass04clean.sh | 10 ++++++---- gisscripts/grass05extract.sh | 8 ++++---- 4 files changed, 14 insertions(+), 10 deletions(-) diff --git a/gisscripts/grass01import.sh b/gisscripts/grass01import.sh index c80a6262..2325f40b 100755 --- a/gisscripts/grass01import.sh +++ b/gisscripts/grass01import.sh @@ -44,7 +44,8 @@ case ${MODE} in shp) # Local, pre-intersected Shapefiles DSN=${HOME}/live/corine - PREFIX=nl_ +# PREFIX=nl_ + PREFIX=clc00_ SELECTION=${DSN}/${PREFIX}c[0-9][0-9][0-9].shp SNAP=1 SPAT="" diff --git a/gisscripts/grass03patch.sh b/gisscripts/grass03patch.sh index 0f0ba247..914802ee 100755 --- a/gisscripts/grass03patch.sh +++ b/gisscripts/grass03patch.sh @@ -23,7 +23,8 @@ # $MODE-values for the "case" clause, like 'grass03patch.sh_shp' MODE=`basename ${0} | cut -f 2 -d \_` # -PATCHMAP=clc00_nl +#PATCHMAP=clc00_nl +PATCHMAP=clc00 case ${MODE} in shp) diff --git a/gisscripts/grass04clean.sh b/gisscripts/grass04clean.sh index 2d378d75..625151b2 100755 --- a/gisscripts/grass04clean.sh +++ b/gisscripts/grass04clean.sh @@ -26,7 +26,8 @@ COMMAND=`basename ${0} | cut -f 1 -d \_` MODE=`basename ${0} | cut -f 2 -d \_` RUN=`basename ${0} | cut -f 3 -d \_` -PATCHMAP=clc00_nl +#PATCHMAP=clc00_nl +PATCHMAP=clc00 case ${MODE} in shp) @@ -42,13 +43,14 @@ MIN_AREA=10 case ${RUN} in first) v.clean input=${PATCHMAP} output=${PATCHMAP}_clean tool=snap,bpol,rmdupl,rmline,break,rmdupl,rmdangle,rmarea thresh=${SNAP},0,0,0,0,0,0,${MIN_AREA} type=boundary --verbose + v.dissolve input=${PATCHMAP}_clean output=${PATCHMAP}_dissolved ;; second) - v.clean input=${PATCHMAP}_clean output=${PATCHMAP}_clobber tool=break,rmdupl,rmdangle type=boundary --verbose + v.clean input=${PATCHMAP}_dissolved output=${PATCHMAP}_clobber tool=break,rmdupl,rmdangle type=boundary --verbose ;; loop) - g.remove vect=${PATCHMAP}_clean - g.rename vect=${PATCHMAP}_clobber,${PATCHMAP}_clean + g.remove vect=${PATCHMAP}_dissolved + g.rename vect=${PATCHMAP}_clobber,${PATCHMAP}_dissolved ${COMMAND}_${MODE}_second ;; esac diff --git a/gisscripts/grass05extract.sh b/gisscripts/grass05extract.sh index 0a715706..e03f8370 100755 --- a/gisscripts/grass05extract.sh +++ b/gisscripts/grass05extract.sh @@ -31,8 +31,9 @@ cd ${RUNDIR} # MAPPINGFILE=${BASEDIR}/CORINEtoCStest.txt -CLEANMAP=clc00_nl_clobber -EXTRACTPREFIX=clc00_nl_ +#EXTRACTPREFIX=clc00_nl_ +EXTRACTPREFIX=clc00_ +CLEANMAP=${EXTRACTPREFIX}clobber case ${MODE} in shp) @@ -49,8 +50,7 @@ SELECTION=`v.category input=${CLEANMAP} type=centroid option=print | sort -n | u for CATEGORY in ${SELECTION}; do LAYER=`grep \^${CATEGORY} ${MAPPINGFILE} | awk '{print $2}' | sed -e "s/^cs_/${EXTRACTPREFIX}/g"` v.extract list=${CATEGORY} input=${CLEANMAP} output=${EXTRACTPREFIX}${CATEGORY} type=area - v.dissolve input=${EXTRACTPREFIX}${CATEGORY} output=${EXTRACTPREFIX}${CATEGORY}_dissolved - v.out.ogr input=${EXTRACTPREFIX}${CATEGORY}_dissolved dsn=${DUMPDIR}/${LAYER}.shp + v.out.ogr input=${EXTRACTPREFIX}${CATEGORY} dsn=${DUMPDIR}/${LAYER}.shp done # EOF From 597888c6c19b907e97bd39939fca7025b6d837d7 Mon Sep 17 00:00:00 2001 From: Martin Spott <martin@sphere.telascience.org> Date: Thu, 16 Dec 2010 14:27:26 -0800 Subject: [PATCH 2/4] Prevent clipping against MULTIPOLYGONS - this happens to crash the postmaster --- gisscripts/IntersectsRemoval.sh | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/gisscripts/IntersectsRemoval.sh b/gisscripts/IntersectsRemoval.sh index 6d833fb1..aae65352 100755 --- a/gisscripts/IntersectsRemoval.sh +++ b/gisscripts/IntersectsRemoval.sh @@ -40,11 +40,17 @@ MODE="testing" # production, testing InitCutoutTable () { ${PSQL} "DROP TABLE ${CUTLAYER}" ${PSQL} "DELETE FROM geometry_columns WHERE f_table_name LIKE '${CUTLAYER}'" +# ${PSQL} "CREATE TABLE ${CUTLAYER} (ogc_fid serial NOT NULL, \ +# wkb_geometry geometry, \ +# CONSTRAINT enforce_dims_wkb_geometry CHECK (ndims(wkb_geometry) = 2), \ +# CONSTRAINT enforce_geotype_wkb_geometry CHECK ((geometrytype(wkb_geometry) = 'POLYGON'::text) \ +# OR (geometrytype(wkb_geometry) = 'MULTIPOLYGON'::text)), \ +# CONSTRAINT enforce_srid_wkb_geometry CHECK (srid(wkb_geometry) = 4326) \ +# )" ${PSQL} "CREATE TABLE ${CUTLAYER} (ogc_fid serial NOT NULL, \ wkb_geometry geometry, \ CONSTRAINT enforce_dims_wkb_geometry CHECK (ndims(wkb_geometry) = 2), \ - CONSTRAINT enforce_geotype_wkb_geometry CHECK ((geometrytype(wkb_geometry) = 'POLYGON'::text) \ - OR (geometrytype(wkb_geometry) = 'MULTIPOLYGON'::text)), \ + CONSTRAINT enforce_geotype_wkb_geometry CHECK (geometrytype(wkb_geometry) = 'POLYGON'::text), \ CONSTRAINT enforce_srid_wkb_geometry CHECK (srid(wkb_geometry) = 4326) \ )" ${PSQL} "INSERT INTO geometry_columns (f_table_catalog, f_table_schema, f_table_name, f_geometry_column, coord_dimension, srid, type) \ From b52552776467c0f7693c87fad3d7cc7b59aa3b8b Mon Sep 17 00:00:00 2001 From: Martin Spott <martin@sphere.telascience.org> Date: Fri, 7 Jan 2011 12:26:13 -0800 Subject: [PATCH 3/4] Tweaks for importing VMap0 in GRASS --- gisscripts/grass01import.sh | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/gisscripts/grass01import.sh b/gisscripts/grass01import.sh index 2325f40b..f647633b 100755 --- a/gisscripts/grass01import.sh +++ b/gisscripts/grass01import.sh @@ -53,12 +53,15 @@ case ${MODE} in ldb) # Landcover-DB DSN="PG:host=${PGHOST} user=${PGUSER} dbname=${PGDATABASE}" - PREFIX=clc_ - # Unsafe because "_" matches any single character in LIKE. -# SELECTION=`${PSQL} "SELECT f_table_name FROM geometry_columns WHERE f_table_name LIKE '${PREFIX}%' AND type LIKE 'POLYGON' ORDER BY f_table_name"` - SELECTION=`psql -tA -c "\dt" | awk -F\| '{print $2}' | grep \^${PREFIX}` - SNAP=0.00001 - SPAT="spatial=2.8,49.8,8.2,54.2" # spatial=-123,37,-121,38 # spatial=3,50,8,54 +# PREFIX=clc_ + PREFIX=cs_ + # Maybe unsafe because "_" matches any single character in LIKE; + # escape understores. + SELECTION=`${PSQL} "SELECT f_table_name FROM geometry_columns WHERE f_table_name LIKE '$(echo ${PREFIX} | sed -e 's/_/\\_/g')%' AND type LIKE 'POLYGON' ORDER BY f_table_name"` +# SELECTION=`psql -tA -c "\dt" | awk -F\| '{print $2}' | grep \^${PREFIX}` + SNAP=0.0003 # Fits nicely with VMap0, consider SNAP=0.00001 for accurate data +# SPAT="spatial=2.8,49.8,8.2,54.2" # spatial=-123,37,-121,38 # spatial=3,50,8,54 + SPAT="" ;; esac # From 21a1dd3d654594a814befb827a2f33dca1e4b446 Mon Sep 17 00:00:00 2001 From: Martin Spott <martin@sphere.telascience.org> Date: Sat, 8 Jan 2011 13:22:16 -0800 Subject: [PATCH 4/4] Adaption for VMap0 --- gisscripts/grass04clean.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gisscripts/grass04clean.sh b/gisscripts/grass04clean.sh index 625151b2..5448527a 100755 --- a/gisscripts/grass04clean.sh +++ b/gisscripts/grass04clean.sh @@ -34,7 +34,7 @@ case ${MODE} in SNAP=1 ;; ldb) - SNAP=0.00001 + SNAP=0.0003 # SNAP=0.00001 ;; esac #