diff options
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 |
commit | 3fa3778203796584487a6a50997f685971e6b7f7 (patch) | |
tree | 3bbe74b8670bc7a5f821efc319030a5693cd4b74 /chimere/scripts/upgrade.py | |
parent | a8e9b660968b18ce7a7d1716fb1410e14c8669f3 (diff) | |
download | Chimère-3fa3778203796584487a6a50997f685971e6b7f7.tar.bz2 Chimère-3fa3778203796584487a6a50997f685971e6b7f7.zip |
Script to correct wrong projection for areas
Diffstat (limited to 'chimere/scripts/upgrade.py')
-rwxr-xr-x | chimere/scripts/upgrade.py | 31 |
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;" |