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
 #