summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@peacefrogs.net>2010-11-11 19:31:30 +0100
committerÉtienne Loks <etienne.loks@peacefrogs.net>2010-11-11 19:31:30 +0100
commit3fa3778203796584487a6a50997f685971e6b7f7 (patch)
tree3bbe74b8670bc7a5f821efc319030a5693cd4b74
parenta8e9b660968b18ce7a7d1716fb1410e14c8669f3 (diff)
downloadChimère-3fa3778203796584487a6a50997f685971e6b7f7.tar.bz2
Chimère-3fa3778203796584487a6a50997f685971e6b7f7.zip
Script to correct wrong projection for areas
-rwxr-xr-xchimere/scripts/upgrade.py31
1 files changed, 29 insertions, 2 deletions
diff --git a/chimere/scripts/upgrade.py b/chimere/scripts/upgrade.py
index 939bb4c..2628ec8 100755
--- a/chimere/scripts/upgrade.py
+++ b/chimere/scripts/upgrade.py
@@ -13,7 +13,7 @@ from django.db import connection, transaction
cursor = connection.cursor()
-from main.models import Area
+from main.models import Area, Route
# early versions before 0.1: urn field doesn't exist for area
@@ -58,5 +58,32 @@ UNIQUE"
print " * urn field has now the constraint NOT NULL"
# early versions before 0.1: save area with wrong SRID
+# only errors with default SRID is managed adapt the script for your SRID
+
+from osgeo import osr
+
+areas = Area.objects.all()
+srs = osr.SpatialReference()
+srs.ImportFromEPSG(4326) # WGS84
+ll = srs.CloneGeogCS()
+srs.ImportFromEPSG(settings.EPSG_PROJECTION)
+proj = osr.CoordinateTransformation(srs, ll)
+
+changed = False
+for area in areas:
+ # only one test: assume each point as been save with the same SRID...
+ if area.upper_left_corner.srid == 4326 and area.upper_left_corner.x > 90 \
+ or area.upper_left_corner < -90:
+ changed = True
+ pt = proj.TransformPoint(area.upper_left_corner.y,
+ area.upper_left_corner.x)
+ area.upper_left_corner.x = pt[0]
+ area.upper_left_corner.y = pt[1]
+ pt = proj.TransformPoint(area.lower_right_corner.y,
+ area.lower_right_corner.x)
+ area.lower_right_corner.x = pt[0]
+ area.lower_right_corner.y = pt[1]
+ area.save()
+if changed:
+ print " * projections of areas corrected"
-query = "SELECT AsText(ST_Transform(upper_left_corner, 4326)) from main_area;"