def __init__(self, src): """ initialize shapefile reader """ if isinstance(src, unicode): src = src.encode('ascii', 'ignore') src = self.find_source(src) self.shpSrc = src self.sr = shapefile.Reader(src) self.recs = [] self.shapes = {} self.load_records() self.proj = None # Check if there's a spatial reference prj_src = src[:-4] + '.prj' if exists(prj_src): prj_text = open(prj_src).read() srs = SpatialReference() if srs.ImportFromWkt(prj_text): raise ValueError("Error importing PRJ information from: %s" % prj_file) if srs.IsProjected(): try: self.proj = pyproj.Proj(srs.ExportToProj4()) except: # e.g. ERROR 6: No translation for Lambert_Conformal_Conic to PROJ.4 format is known. srs.MorphFromESRI() self.proj = pyproj.Proj(srs.ExportToProj4())
def get_proj4_string(wkt_proj): if not wkt_proj: return None else: a = SpatialReference(wkt_proj) a.MorphFromESRI() res = a.ExportToProj4() return None if \ '+proj=longlat +ellps=WGS84 +no_defs' in res \ or '+proj=longlat +datum=WGS84 +no_defs' in res \ else res