diff --git a/pycrs/__init__.py b/pycrs/__init__.py index 4e0ec82..3f200d7 100644 --- a/pycrs/__init__.py +++ b/pycrs/__init__.py @@ -1,3 +1,11 @@ +""" +PyCRS +Karim Bahgat, 2015 + +Intro... +""" + + from . import loader from . import parser from . import utils diff --git a/pycrs/elements/containers.py b/pycrs/elements/containers.py index 02cd48a..2076ee1 100644 --- a/pycrs/elements/containers.py +++ b/pycrs/elements/containers.py @@ -1,6 +1,7 @@ from . import directions from . import datums +from . import ellipsoids # the final CRS object which is instantiated with all of the below and parameters # remember to use +no_defs when outputting to proj4 @@ -61,6 +62,9 @@ class Datum: return "%s %s" % (self.ellips.to_proj4(), self.datumshift.to_proj4()) elif isinstance(self.name, datums.Unknown): return "%s" % self.ellips.to_proj4() + elif not self.name.proj4: + # has no proj4 equivaent and is better left unspecified, so only return ellips + return "%s" % self.ellips.to_proj4() else: return "+datum=%s %s" % (self.name.proj4, self.ellips.to_proj4()) @@ -104,7 +108,14 @@ class Ellipsoid: self.inv_flat = inv_flat def to_proj4(self): - return "+ellps=%s +a=%s +f=%s" % (self.name.proj4, self.semimaj_ax, self.inv_flat) + if isinstance(self.name, ellipsoids.Unknown): + # has no proj4 equivaent and is better left unspecified + return "+a=%s +f=%s" % (self.semimaj_ax, self.inv_flat) + elif not self.name.proj4: + # has no proj4 equivaent and is better left unspecified + return "+a=%s +f=%s" % (self.semimaj_ax, self.inv_flat) + else: + return "+ellps=%s +a=%s +f=%s" % (self.name.proj4, self.semimaj_ax, self.inv_flat) def to_ogc_wkt(self): return 'SPHEROID["%s", %s, %s]' % (self.name.ogc_wkt, self.semimaj_ax, self.inv_flat) diff --git a/pycrs/elements/containers.pyc b/pycrs/elements/containers.pyc index 0d78aae..9c15a67 100644 Binary files a/pycrs/elements/containers.pyc and b/pycrs/elements/containers.pyc differ diff --git a/pycrs/elements/datums.py b/pycrs/elements/datums.py index dabc031..44d0bc4 100644 --- a/pycrs/elements/datums.py +++ b/pycrs/elements/datums.py @@ -58,13 +58,13 @@ class SphereArcInfo: ogc_wkt = "D_Sphere_ARC_INFO" # confirmed but odd that uses D_ esri_wkt = "D_Sphere_ARC_INFO" - semimaj_ax = 6370997.0 - inv_flat = 0.0 + ellipsdef = "" # ellipsoids... + to_wgs84 = None class Unknown: - proj4 = "unknown" # no datum name, just ellips + towgs84 params... + proj4 = "" # no datum name, just ellips + towgs84 params... ogc_wkt = "Unknown" esri_wkt = "Unknown" ellipsdef = "" # ellipsoids.WGS72() - to_wgs84 = None,None + to_wgs84 = None diff --git a/pycrs/elements/datums.pyc b/pycrs/elements/datums.pyc index 0549e30..6723118 100644 Binary files a/pycrs/elements/datums.pyc and b/pycrs/elements/datums.pyc differ diff --git a/pycrs/elements/ellipsoids.py b/pycrs/elements/ellipsoids.py index a32dd2a..44c5562 100644 --- a/pycrs/elements/ellipsoids.py +++ b/pycrs/elements/ellipsoids.py @@ -79,7 +79,30 @@ class SphereArcInfo: semimaj_ax = 6370997.0 inv_flat = 0.0 +class Krassowsky1940: + proj4 = "krass" + ogc_wkt = "Krassowsky 1940" + esri_wkt = "Krassowsky_1940" + semimaj_ax = 6378245.0 + inv_flat = 298.3 + +class Bessel1841: + proj4 = "bessel" + ogc_wkt = "Bessel 1841" + esri_wkt = "Bessel_1841" + + semimaj_ax = 6377397.155 + inv_flat = 299.1528128 + +class Unknown: + proj4 = "" + ogc_wkt = "Unknown" + esri_wkt = "Unknown" + + # values have to be set manually in Ellipsoid class + semimaj_ax = None + inv_flat = None diff --git a/pycrs/elements/ellipsoids.pyc b/pycrs/elements/ellipsoids.pyc index 634f957..8df835f 100644 Binary files a/pycrs/elements/ellipsoids.pyc and b/pycrs/elements/ellipsoids.pyc differ diff --git a/pycrs/elements/parameters.py b/pycrs/elements/parameters.py index 15dfccd..922ccfc 100644 --- a/pycrs/elements/parameters.py +++ b/pycrs/elements/parameters.py @@ -24,6 +24,7 @@ from . import datums from . import directions +from . import units ################ @@ -333,7 +334,10 @@ class Unit: self.metermultiplier = metermultiplier def to_proj4(self): - return "%s %s" %(self.unittype.to_proj4(), self.metermultiplier.to_proj4()) + if isinstance(self.unittype, units.Unknown): + return "%s" % self.metermultiplier.to_proj4() + else: + return "%s %s" %(self.unittype.to_proj4(), self.metermultiplier.to_proj4()) def to_ogc_wkt(self): return 'UNIT["%s", %s]' %(self.unittype.to_ogc_wkt(), self.metermultiplier.to_ogc_wkt()) diff --git a/pycrs/elements/parameters.pyc b/pycrs/elements/parameters.pyc index 4d5c027..ba1bab8 100644 Binary files a/pycrs/elements/parameters.pyc and b/pycrs/elements/parameters.pyc differ diff --git a/pycrs/elements/projections.py b/pycrs/elements/projections.py index 00bd547..a9bf75b 100644 --- a/pycrs/elements/projections.py +++ b/pycrs/elements/projections.py @@ -34,8 +34,8 @@ class UTM: class ObliqueMercator: proj4 = "omerc" - ogc_wkt = "Hotine_Oblique_Mercator" - esri_wkt = "Hotine_Oblique_Mercator_Azimuth_Natural_Origin" + ogc_wkt = "Hotine_Oblique_Mercator_Two_Point_Natural_Origin" #"Hotine_Oblique_Mercator" + esri_wkt = "Hotine_Oblique_Mercator_Two_Point_Natural_Origin" #"Hotine_Oblique_Mercator_Azimuth_Natural_Origin" class AlbersEqualArea: proj4 = "aea" @@ -49,8 +49,20 @@ class CylindricalEqualArea: class EquiDistantConic: proj4 = "eqdc" - ogc_wkt = "Equidistant_Conic" - esri_wkt = "Equidistant_Conic" + ogc_wkt = "Equidistant_Conic" + esri_wkt = "Equidistant_Conic" + +class EquiDistantCylindrical: + # same as equirectangular...? + proj4 = "eqc" + ogc_wkt = "Equidistant_Cylindrical" + esri_wkt = "Equidistant_Cylindrical" + +class EquiRectangular: + # same as equidistant cylindrical + proj4 = "eqc" + ogc_wkt = "Equirectangular" + esri_wkt = "Equirectangular" class TransverseMercator: proj4 = "tmerc" @@ -85,7 +97,7 @@ class Mollweide: class ObliqueStereographic: proj4 = "sterea" ogc_wkt = "Oblique_Stereographic" - esri_wkt = "Stereographic_North_Pole" + esri_wkt = "Oblique Stereographic" #"Stereographic_North_Pole" class Orthographic: proj4 = "ortho" @@ -112,11 +124,6 @@ class VanDerGrinten: ogc_wkt = "VanDerGrinten" esri_wkt = "Van_der_Grinten_I" -class Equirectangular: - proj4 = "eqc" - ogc_wkt = "Equirectangular" - esri_wkt = "Equidistant_Cylindrical" - class LambertConformalConic: proj4 = "lcc" ogc_wkt = "Lambert_Conformal_Conic" # possible has some variants @@ -162,8 +169,30 @@ class ObliqueCylindricalEqualArea: ogc_wkt = "Oblique_Cylindrical_Equal_Area" esri_wkt = "Oblique_Cylindrical_Equal_Area" - +class Polyconic: + proj4 = "poly" + ogc_wkt = "Polyconic" + esri_wkt = "Polyconic" +class EckertIV: + proj4 = "eck4" + ogc_wkt = "Eckert_IV" + esri_wkt = "Eckert_IV" + +class EckertVI: + proj4 = "eck6" + ogc_wkt = "Eckert_VI" + esri_wkt = "Eckert_VI" + +class AzimuthalEquidistant: + proj4 = "aeqd" + ogc_wkt = "Azimuthal_Equidistant" + esri_wkt = "Azimuthal_Equidistant" + +class GeostationarySatellite: + proj4 = "geos" + ogc_wkt = "Geostationary_Satellite" + esri_wkt = "Geostationary_Satellite" diff --git a/pycrs/elements/projections.pyc b/pycrs/elements/projections.pyc index 1bcfe5e..e13a3c8 100644 Binary files a/pycrs/elements/projections.pyc and b/pycrs/elements/projections.pyc differ diff --git a/pycrs/elements/units.py b/pycrs/elements/units.py index 3117b46..181a836 100644 --- a/pycrs/elements/units.py +++ b/pycrs/elements/units.py @@ -15,7 +15,7 @@ def find(unitname, crstype, strict=False): if unitname == itemname: return item # special handling of wkt meters which has multiple possibilities - elif isinstance(item(), Meter) and crstype.endswith("wkt") and not strict and unitname in ("meters","meter","metre"): + elif isinstance(item(), Meter) and crstype.endswith("wkt") and not strict and unitname in ("meters","meter","metre","m"): return item except: pass @@ -39,3 +39,8 @@ class Feet: proj4 = "..." ogc_wkt = "Foot_US" esri_wkt = "Foot_US" + +class Unknown: + proj4 = "" + ogc_wkt = "Unknown" + esri_wkt = "Unknown" diff --git a/pycrs/elements/units.pyc b/pycrs/elements/units.pyc index 3ca1737..f30f735 100644 Binary files a/pycrs/elements/units.pyc and b/pycrs/elements/units.pyc differ diff --git a/pycrs/loader.py b/pycrs/loader.py index f161271..88103c8 100644 --- a/pycrs/loader.py +++ b/pycrs/loader.py @@ -1,3 +1,6 @@ +""" +Convenience functions for loading from different sources. +""" import json import urllib2 @@ -8,8 +11,6 @@ from . import parser # USER FUNCTIONS ################# -# convenience methods for loading from different sources - def from_url(url, format=None): """ Returns the crs object from a string interpreted as a specified format, located at a given url site. diff --git a/pycrs/parser.py b/pycrs/parser.py index faff913..c3d88e5 100644 --- a/pycrs/parser.py +++ b/pycrs/parser.py @@ -1,5 +1,7 @@ +""" +The main module containing functions for parsing text strings into crs objects. +""" -# parse from text strings # possible use module: https://github.com/rockdoc/grabbag/wiki/CRS-WKT-Parser # also note some paramter descriptions: http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/doc-files/WKT.html # and see gdal source code: http://gis.stackexchange.com/questions/129764/how-are-esri-wkt-projections-different-from-ogc-wkt-projections @@ -303,7 +305,8 @@ def _from_wkt(string, wkttype, strict=False): unit = unitclass() unittype = parameters.UnitType(unit) else: - raise Exception("The specified unit name could not be found") + unit = units.Unknown() + unittype = parameters.UnitType(unit) metmult = parameters.MeterMultiplier(value) linunit = parameters.Unit(unittype, metmult) @@ -340,15 +343,16 @@ def _from_wkt(string, wkttype, strict=False): if ellipsclass: ellipsdef = ellipsclass() else: - raise Exception("The specified ellipsoid name could not be found") + ellipsdef = ellipsoids.Unknown() ellipsoid = containers.Ellipsoid(ellipsdef, subsubcontent[1], subsubcontent[2]) ## datum shift if wkttype == "ogc": - if len(subcontent) >= 3: - subsubheader, subsubcontent = subcontent[2] - datumshift = parameters.DatumShift(subsubcontent) + for subsubheader,subsubcontent in subcontent[1:]: + if subsubheader == "TOWGS84": + datumshift = parameters.DatumShift(subsubcontent) + break else: datumshift = None elif wkttype == "esri": @@ -370,7 +374,8 @@ def _from_wkt(string, wkttype, strict=False): unit = unitclass() unittype = parameters.UnitType(unit) else: - raise Exception("The specified unit name could not be found") + unit = units.Unknown() + unittype = parameters.UnitType(unit) metmult = parameters.MeterMultiplier(value) angunit = parameters.AngularUnit(unittype, metmult) @@ -459,12 +464,18 @@ def from_proj4(string, strict=False): ellipsclass = ellipsoids.find(ellipsname, "proj4", strict) if ellipsclass: ellipsdef = ellipsclass + elif "+a" in partdict and "+f" in partdict: + ellipsdef = ellipsoids.Unknown() else: - raise Exception("The specified ellipsoid name could not be found") - + raise Exception("The specified ellipsoid name could not be found, and there was no manual specification of the semimajor axis and inverse flattening to use as a substitute.") + elif "+a" in partdict and "+f" in partdict: + # alternatively, it is okay with a missing ellipsoid if +a and +f are specified + # TODO: +f seems to never be specified when +ellps is missing, only +a and +b, look into... + ellipsdef = ellipsoids.Unknown() + else: - raise Exception("Could not find required +ellps element") + raise Exception("Could not find the required +ellps element, nor a manual specification of the +a or +f elements.") # TO WGS 84 COEFFS if "+towgs84" in partdict: diff --git a/pycrs/parser.pyc b/pycrs/parser.pyc index a1e0452..2ff73ef 100644 Binary files a/pycrs/parser.pyc and b/pycrs/parser.pyc differ diff --git a/pycrs/utils.py b/pycrs/utils.py index f27a6eb..d77ba6d 100644 --- a/pycrs/utils.py +++ b/pycrs/utils.py @@ -1,3 +1,7 @@ +""" +Misc utility functions related to crs formats and online services. +""" + import urllib2 import re diff --git a/tester.py b/tester.py index 6006d3b..42219a9 100644 --- a/tester.py +++ b/tester.py @@ -6,6 +6,7 @@ import logging ########################### # Drawing routine for testing +raw = None def render_world(crs, savename): import urllib2 import json @@ -15,7 +16,9 @@ def render_world(crs, savename): import random # load world borders - raw = urllib2.urlopen("https://raw.githubusercontent.com/johan/world.geo.json/master/countries.geo.json").read() + global raw + if not raw: + raw = urllib2.urlopen("https://raw.githubusercontent.com/johan/world.geo.json/master/countries.geo.json").read() rawdict = json.loads(raw) data = pygeoj.load(data=rawdict) @@ -215,6 +218,8 @@ def testoutputs(crs): +############################################################################# +############################################################################# ############################################################################# diff --git a/testrenders/12_from_esriwkt.png b/testrenders/12_from_esriwkt.png new file mode 100644 index 0000000..cdf357f Binary files /dev/null and b/testrenders/12_from_esriwkt.png differ diff --git a/testrenders/12_from_ogcwkt.png b/testrenders/12_from_ogcwkt.png new file mode 100644 index 0000000..6072ca5 Binary files /dev/null and b/testrenders/12_from_ogcwkt.png differ diff --git a/testrenders/12_from_proj4.png b/testrenders/12_from_proj4.png new file mode 100644 index 0000000..c59cae0 Binary files /dev/null and b/testrenders/12_from_proj4.png differ diff --git a/testrenders/13_from_esriwkt.png b/testrenders/13_from_esriwkt.png new file mode 100644 index 0000000..d28ccbf Binary files /dev/null and b/testrenders/13_from_esriwkt.png differ diff --git a/testrenders/13_from_ogcwkt.png b/testrenders/13_from_ogcwkt.png new file mode 100644 index 0000000..2294552 Binary files /dev/null and b/testrenders/13_from_ogcwkt.png differ diff --git a/testrenders/14_from_esriwkt.png b/testrenders/14_from_esriwkt.png new file mode 100644 index 0000000..3e31519 Binary files /dev/null and b/testrenders/14_from_esriwkt.png differ diff --git a/testrenders/15_from_esriwkt.png b/testrenders/15_from_esriwkt.png index 4a5c32d..5e04255 100644 Binary files a/testrenders/15_from_esriwkt.png and b/testrenders/15_from_esriwkt.png differ diff --git a/testrenders/15_from_ogcwkt.png b/testrenders/15_from_ogcwkt.png index 0a3bc3c..9cee079 100644 Binary files a/testrenders/15_from_ogcwkt.png and b/testrenders/15_from_ogcwkt.png differ diff --git a/testrenders/15_from_proj4.png b/testrenders/15_from_proj4.png index 54d0115..8d5ba58 100644 Binary files a/testrenders/15_from_proj4.png and b/testrenders/15_from_proj4.png differ diff --git a/testrenders/16_from_esriwkt.png b/testrenders/16_from_esriwkt.png index 20bcc8c..0b974a6 100644 Binary files a/testrenders/16_from_esriwkt.png and b/testrenders/16_from_esriwkt.png differ diff --git a/testrenders/16_from_proj4.png b/testrenders/16_from_proj4.png index 3f664ce..5bfdd35 100644 Binary files a/testrenders/16_from_proj4.png and b/testrenders/16_from_proj4.png differ diff --git a/testrenders/18_from_esriwkt.png b/testrenders/18_from_esriwkt.png index 8cc45bb..9bb4529 100644 Binary files a/testrenders/18_from_esriwkt.png and b/testrenders/18_from_esriwkt.png differ diff --git a/testrenders/18_from_ogcwkt.png b/testrenders/18_from_ogcwkt.png index 251a690..7c49aa2 100644 Binary files a/testrenders/18_from_ogcwkt.png and b/testrenders/18_from_ogcwkt.png differ diff --git a/testrenders/18_from_proj4.png b/testrenders/18_from_proj4.png index bbd4927..a84b526 100644 Binary files a/testrenders/18_from_proj4.png and b/testrenders/18_from_proj4.png differ diff --git a/testrenders/19_from_esriwkt.png b/testrenders/19_from_esriwkt.png index 2cdaf86..926cf5d 100644 Binary files a/testrenders/19_from_esriwkt.png and b/testrenders/19_from_esriwkt.png differ diff --git a/testrenders/19_from_ogcwkt.png b/testrenders/19_from_ogcwkt.png index c2821b9..9c340fd 100644 Binary files a/testrenders/19_from_ogcwkt.png and b/testrenders/19_from_ogcwkt.png differ diff --git a/testrenders/19_from_proj4.png b/testrenders/19_from_proj4.png index fda9092..740c2af 100644 Binary files a/testrenders/19_from_proj4.png and b/testrenders/19_from_proj4.png differ diff --git a/testrenders/1_from_esriwkt.png b/testrenders/1_from_esriwkt.png new file mode 100644 index 0000000..2023994 Binary files /dev/null and b/testrenders/1_from_esriwkt.png differ diff --git a/testrenders/21_from_esriwkt.png b/testrenders/21_from_esriwkt.png new file mode 100644 index 0000000..b8a516a Binary files /dev/null and b/testrenders/21_from_esriwkt.png differ diff --git a/testrenders/21_from_ogcwkt.png b/testrenders/21_from_ogcwkt.png new file mode 100644 index 0000000..4f5a1c2 Binary files /dev/null and b/testrenders/21_from_ogcwkt.png differ diff --git a/testrenders/22_from_esriwkt.png b/testrenders/22_from_esriwkt.png new file mode 100644 index 0000000..08950bb Binary files /dev/null and b/testrenders/22_from_esriwkt.png differ diff --git a/testrenders/22_from_ogcwkt.png b/testrenders/22_from_ogcwkt.png new file mode 100644 index 0000000..08950bb Binary files /dev/null and b/testrenders/22_from_ogcwkt.png differ diff --git a/testrenders/23_from_esriwkt.png b/testrenders/23_from_esriwkt.png deleted file mode 100644 index bfe209b..0000000 Binary files a/testrenders/23_from_esriwkt.png and /dev/null differ diff --git a/testrenders/23_from_ogcwkt.png b/testrenders/23_from_ogcwkt.png new file mode 100644 index 0000000..0e9fffa Binary files /dev/null and b/testrenders/23_from_ogcwkt.png differ diff --git a/testrenders/23_from_proj4.png b/testrenders/23_from_proj4.png index dc26291..e596875 100644 Binary files a/testrenders/23_from_proj4.png and b/testrenders/23_from_proj4.png differ diff --git a/testrenders/24_from_esriwkt.png b/testrenders/24_from_esriwkt.png new file mode 100644 index 0000000..c8d8e1c Binary files /dev/null and b/testrenders/24_from_esriwkt.png differ diff --git a/testrenders/24_from_ogcwkt.png b/testrenders/24_from_ogcwkt.png new file mode 100644 index 0000000..bd3fcd0 Binary files /dev/null and b/testrenders/24_from_ogcwkt.png differ diff --git a/testrenders/24_from_proj4.png b/testrenders/24_from_proj4.png new file mode 100644 index 0000000..37a7314 Binary files /dev/null and b/testrenders/24_from_proj4.png differ diff --git a/testrenders/25_from_esriwkt.png b/testrenders/25_from_esriwkt.png index 27498aa..3976926 100644 Binary files a/testrenders/25_from_esriwkt.png and b/testrenders/25_from_esriwkt.png differ diff --git a/testrenders/25_from_ogcwkt.png b/testrenders/25_from_ogcwkt.png index b914462..de85874 100644 Binary files a/testrenders/25_from_ogcwkt.png and b/testrenders/25_from_ogcwkt.png differ diff --git a/testrenders/25_from_proj4.png b/testrenders/25_from_proj4.png index 2ceb3d3..2ff306e 100644 Binary files a/testrenders/25_from_proj4.png and b/testrenders/25_from_proj4.png differ diff --git a/testrenders/26_from_esriwkt.png b/testrenders/26_from_esriwkt.png new file mode 100644 index 0000000..eb64f0f Binary files /dev/null and b/testrenders/26_from_esriwkt.png differ diff --git a/testrenders/26_from_ogcwkt.png b/testrenders/26_from_ogcwkt.png new file mode 100644 index 0000000..de06ffe Binary files /dev/null and b/testrenders/26_from_ogcwkt.png differ diff --git a/testrenders/26_from_proj4.png b/testrenders/26_from_proj4.png index 8768743..62fd073 100644 Binary files a/testrenders/26_from_proj4.png and b/testrenders/26_from_proj4.png differ diff --git a/testrenders/28_from_esriwkt.png b/testrenders/28_from_esriwkt.png index cc252bc..2ebeea8 100644 Binary files a/testrenders/28_from_esriwkt.png and b/testrenders/28_from_esriwkt.png differ diff --git a/testrenders/28_from_ogcwkt.png b/testrenders/28_from_ogcwkt.png new file mode 100644 index 0000000..109bfad Binary files /dev/null and b/testrenders/28_from_ogcwkt.png differ diff --git a/testrenders/28_from_proj4.png b/testrenders/28_from_proj4.png index bb17dec..db080b4 100644 Binary files a/testrenders/28_from_proj4.png and b/testrenders/28_from_proj4.png differ diff --git a/testrenders/2_from_esriwkt.png b/testrenders/2_from_esriwkt.png new file mode 100644 index 0000000..2deabc4 Binary files /dev/null and b/testrenders/2_from_esriwkt.png differ diff --git a/testrenders/2_from_ogcwkt.png b/testrenders/2_from_ogcwkt.png new file mode 100644 index 0000000..1ed03da Binary files /dev/null and b/testrenders/2_from_ogcwkt.png differ diff --git a/testrenders/2_from_proj4.png b/testrenders/2_from_proj4.png new file mode 100644 index 0000000..c4ff1b8 Binary files /dev/null and b/testrenders/2_from_proj4.png differ diff --git a/testrenders/3_from_esriwkt.png b/testrenders/3_from_esriwkt.png index be99f7f..a460432 100644 Binary files a/testrenders/3_from_esriwkt.png and b/testrenders/3_from_esriwkt.png differ diff --git a/testrenders/3_from_ogcwkt.png b/testrenders/3_from_ogcwkt.png index 21f3485..aa60a3c 100644 Binary files a/testrenders/3_from_ogcwkt.png and b/testrenders/3_from_ogcwkt.png differ diff --git a/testrenders/3_from_proj4.png b/testrenders/3_from_proj4.png index ab8219b..70f6d5d 100644 Binary files a/testrenders/3_from_proj4.png and b/testrenders/3_from_proj4.png differ diff --git a/testrenders/4_from_esriwkt.png b/testrenders/4_from_esriwkt.png new file mode 100644 index 0000000..bdb7333 Binary files /dev/null and b/testrenders/4_from_esriwkt.png differ diff --git a/testrenders/4_from_ogcwkt.png b/testrenders/4_from_ogcwkt.png new file mode 100644 index 0000000..d716f47 Binary files /dev/null and b/testrenders/4_from_ogcwkt.png differ diff --git a/testrenders/4_from_proj4.png b/testrenders/4_from_proj4.png new file mode 100644 index 0000000..519d65c Binary files /dev/null and b/testrenders/4_from_proj4.png differ diff --git a/testrenders/5_from_esriwkt.png b/testrenders/5_from_esriwkt.png new file mode 100644 index 0000000..49a7ff0 Binary files /dev/null and b/testrenders/5_from_esriwkt.png differ diff --git a/testrenders/5_from_ogcwkt.png b/testrenders/5_from_ogcwkt.png new file mode 100644 index 0000000..81bad7d Binary files /dev/null and b/testrenders/5_from_ogcwkt.png differ diff --git a/testrenders/5_from_proj4.png b/testrenders/5_from_proj4.png new file mode 100644 index 0000000..df82716 Binary files /dev/null and b/testrenders/5_from_proj4.png differ diff --git a/testrenders/6_from_esriwkt.png b/testrenders/6_from_esriwkt.png index dd9e84e..70a8615 100644 Binary files a/testrenders/6_from_esriwkt.png and b/testrenders/6_from_esriwkt.png differ diff --git a/testrenders/6_from_ogcwkt.png b/testrenders/6_from_ogcwkt.png index bc973ff..72b54d7 100644 Binary files a/testrenders/6_from_ogcwkt.png and b/testrenders/6_from_ogcwkt.png differ diff --git a/testrenders/7_from_esriwkt.png b/testrenders/7_from_esriwkt.png new file mode 100644 index 0000000..9a5776f Binary files /dev/null and b/testrenders/7_from_esriwkt.png differ diff --git a/testrenders/8_from_esriwkt.png b/testrenders/8_from_esriwkt.png index 05695bf..2efc5d0 100644 Binary files a/testrenders/8_from_esriwkt.png and b/testrenders/8_from_esriwkt.png differ diff --git a/testrenders/8_from_ogcwkt.png b/testrenders/8_from_ogcwkt.png new file mode 100644 index 0000000..7170cce Binary files /dev/null and b/testrenders/8_from_ogcwkt.png differ diff --git a/testrenders/9_from_esriwkt.png b/testrenders/9_from_esriwkt.png index 268145c..13d980c 100644 Binary files a/testrenders/9_from_esriwkt.png and b/testrenders/9_from_esriwkt.png differ diff --git a/testrenders/9_from_ogcwkt.png b/testrenders/9_from_ogcwkt.png index 6f9a7a8..5811995 100644 Binary files a/testrenders/9_from_ogcwkt.png and b/testrenders/9_from_ogcwkt.png differ diff --git a/testrenders/9_from_proj4.png b/testrenders/9_from_proj4.png index 231bb46..7ada75c 100644 Binary files a/testrenders/9_from_proj4.png and b/testrenders/9_from_proj4.png differ diff --git a/testrenders/Thumbs.db b/testrenders/Thumbs.db index 1170c95..2a7623b 100644 Binary files a/testrenders/Thumbs.db and b/testrenders/Thumbs.db differ