def getFileData(filename): if not os.path.isfile(filename): parser.error("the file '%s' does not exist" % (filename)) dataSource = ogr.Open(filename, 0) # 0 means read-only if dataSource is None: l.error('OGR failed to open ' + filename + ', format may be unsuported') sys.exit(1) myS57 = s57(None, dataSource) global zoom zoom = myS57.getZoom() global lat lat = myS57.getCenterPoint()[0] return dataSource
def __init__(self, directory): fps = FilePathSearch(directory) self.scalemap = {} #scale: path self.scales = [] #list of unique scales self.layermap = {} #path: layers self.layers = [] #list of unique layers self.zoommap = {} #zoom: path self.zooms = [] #list of unique zooms skiplayers = ["M_QUAL", "M_NSYS", "M_NPUB", "M_COVR", "DSID", "C_ASSO"] self.geommap = {} #layer: geomtype for s57path in fps.getfilePaths(): s57 = ogrS57info.s57(s57path) scale = s57.getScale() self.scalemap[scale] = self.scalemap.get(scale, []) self.scalemap[scale].append(s57path) zoom = s57.getZoom() self.zoommap[zoom] = self.zoommap.get(zoom, []) self.zoommap[zoom].append(s57path) layers = s57.getLayerList() for lyr in layers: if skiplayers.count(lyr) > 0: layers.remove(lyr) self.layermap[s57path] = layers for lyr in s57.getLayerList(): if self.layers.count(lyr) == 0 and skiplayers.count(lyr) == 0: self.layers.append(lyr) self.geommap[lyr] = s57.getLayerGeometryType(lyr) for key in self.scalemap.keys(): self.scales.append(key) for key in self.zoommap.keys(): self.zooms.append(key) self.layers.sort() self.scales.sort() self.zooms.sort()