features = self._source.features fc = WfsFactory.eINSTANCE.createFeatureCollectionType() fc.feature.add(features) e = Encoder(WFSConfiguration()) uri = self._source.name.namespaceURI prefix = 'gt' e.namespaces.declarePrefix(prefix,uri) e.indenting = True e.encode(fc, WFS.FeatureCollection, out) def toJSON(self,out=sys.stdout): try: from org.geotools.geojson import GeoJSONWriter except ImportError: raise Exception('toJSON() not available, GeoJSON libraries not on classpath.') else: features = self._source.features w = GeoJSONWriter() w.write(features,out) @staticmethod def _newname(): Layer._id += 1 return 'layer_%d' % Layer._id core.registerTypeMapping(FeatureSource, Layer, lambda x: Layer(source=x)) core.registerTypeMapping(FeatureCollection, Layer, lambda x: Layer(source=x)) core.registerTypeUnmapping(Layer, FeatureSource, lambda x: x._source) core.registerTypeUnmapping(Layer, FeatureCollection, lambda x: x._source.getFeatures())
*n* is the number of features to read. """ features = [] for i in range(n): try: features.append(self.next()) except StopIteration: break return features def close(self): """ Closes the cursor. This function should *always* be called by client code after the cursor is no longer needed or has been exhausted. """ if self._reader: self._reader.close() def __iter__(self): return self def toCollection(c): if c.layer is not None: return PyFeatureCollection(c, c.layer.schema._type) return PyFeatureCollection(c) core.registerTypeUnmapping(Cursor, FeatureCollection, toCollection) core.registerTypeUnmapping(Cursor, SimpleFeatureCollection, toCollection)
def __setitem__(self, key, value): self.set(key, value) def __iter__(self): return self.schema.__iter__() def iterkeys(self): return self.__iter__() def iteritems(self): return self.attributes.iteritems() def keys(self): return [f.name for f in self.schema.fields] def values(self): return [core.map(val) for val in self._feature.getAttributes()] def __repr__(self): atts = ['%s: %s' % (fld.name, self.get(fld.name)) for fld in self.schema.fields] id = self.id if self.id.startswith(self.schema.name) else '%s.%s' % (self.schema.name, self.id) return '%s {%s}' % (id, string.join(atts,', ')) def __eq__(self, other): return other and self._feature == other._feature core.registerTypeMapping(_Feature, Feature, lambda x: Feature(f=x)) core.registerTypeUnmapping(Feature, _Feature, lambda x: x._feature)
>>> p2.round() POINT (1071693 554290) .. seealso:: :func:`Projection.transform` """ return Projection(src).transform(obj, dst) def projections(): """ Iterator over all defined projections:: for p in proj.projections(): .. This function returns :class:`Projection` objects. """ for code in crs.getSupportedCodes('epsg'): try: yield Projection('epsg:%s' % code) except: # todo: log this pass core.registerTypeMapping(CRS, Projection) core.registerTypeUnmapping(Projection, CRS, lambda x: x._crs)
Reads n features into a `list`. If less than n features are available the resulting list will have a size less than n. *n* is the number of features to read. """ features = [] for i in range(n): try: features.append(self.next()) except StopIteration: break return features def close(self): """ Closes the cursor. This function should *always* be called by client code after the cursor is no longer needed or has been exhausted. """ if self._reader: self._reader.close() def __iter__(self): return self def toCollection(c): if c.layer is not None: return PyFeatureCollection(c, c.layer.schema._type) return PyFeatureCollection(c) core.registerTypeUnmapping(Cursor, FeatureCollection, toCollection) core.registerTypeUnmapping(Cursor, SimpleFeatureCollection, toCollection)
self.get(key) #todo: drop the existing schema and create a new one raise Exception('%s already exists' % key) except KeyError: if isinstance(val, list): self.create(key, fields=val) elif isinstance(val, feature.Schema): self.create(key, schema=val) else: self.add(val) def __iter__(self): return self.layers().__iter__() def iterkeys(self): return self.__iter__() def iteritems(self): for l in self.layers(): yield (l, self.get(l)) def keys(self): return self.layers() def values(self): return [v for k,v in self.iteritems()] core.registerTypeMapping(DataStore, Workspace, lambda x: Workspace(ds=x)) core.registerTypeUnmapping(Workspace, DataStore, lambda x: x._store)
return self.schema.__iter__() def iterkeys(self): return self.__iter__() def iteritems(self): return self.attributes.iteritems() def keys(self): return [f.name for f in self.schema.fields] def values(self): return [core.map(val) for val in self._feature.getAttributes()] def __repr__(self): atts = [ '%s: %s' % (fld.name, self.get(fld.name)) for fld in self.schema.fields ] id = self.id if self.id.startswith( self.schema.name) else '%s.%s' % (self.schema.name, self.id) return '%s {%s}' % (id, string.join(atts, ', ')) def __eq__(self, other): return other and self._feature == other._feature core.registerTypeMapping(_Feature, Feature, lambda x: Feature(f=x)) core.registerTypeUnmapping(Feature, _Feature, lambda x: x._feature)
e = Encoder(WFSConfiguration()) uri = self._source.name.namespaceURI prefix = 'gt' e.namespaces.declarePrefix(prefix, uri) e.indenting = True e.encode(fc, WFS.FeatureCollection, out) def toJSON(self, out=sys.stdout): try: from org.geotools.geojson import GeoJSONWriter except ImportError: raise Exception( 'toJSON() not available, GeoJSON libraries not on classpath.') else: features = self._source.features w = GeoJSONWriter() w.write(features, out) @staticmethod def _newname(): Layer._id += 1 return 'layer_%d' % Layer._id core.registerTypeMapping(FeatureSource, Layer, lambda x: Layer(source=x)) core.registerTypeMapping(FeatureCollection, Layer, lambda x: Layer(source=x)) core.registerTypeUnmapping(Layer, FeatureSource, lambda x: x._source) core.registerTypeUnmapping(Layer, FeatureCollection, lambda x: x._source.getFeatures())
def __getitem__(self, key): return self.get(key) def __iter__(self): for f in self.fields: yield f.name def iterkeys(self): return self.__iter__() def iteritems(self): for f in self.fields: yield f.name, f def keys(self): return [f.name for f in self.fields] def values(self): return self.fields def __repr__(self): flds = ['%s' % str(fld) for fld in self.fields] return '%s [%s]' % (self.name, string.join(flds, ', ')) def __eq__(self, other): return other and self._type == other._type core.registerTypeMapping(FeatureType, Schema, lambda x: Schema(ft=x)) core.registerTypeUnmapping(Schema, FeatureType, lambda x: x._type)
def __invert__(self): pass def _op(self, name, **params): op = CoverageProcessor.getInstance().getOperation(name) p = op.getParameters() for k, v in params.iteritems(): p.parameter(k).setValue(v) return op.doOperation(p, None) core.registerTypeMapping(GridCoverage2D, Raster, lambda x: Raster(None, coverage=x)) core.registerTypeUnmapping(Raster, GridCoverage2D, lambda x: x._coverage) class Histogram(object): def __init__(self, histo): self._histo = histo def bin(self, i, band=0): h = self._histo if i < h.getNumBins(band): return (h.getBinLowValue(band, i), h.getBinLowValue(band, i + 1)) def bins(self, band=0): return [self.bin(i, band) for i in range(len(self))] def count(self, i, band=0):
result = self._op('Invert', Source=self._coverage) return Raster(self._format, coverage=result, reader=self._reader) def __invert__(self): pass def _op(self, name, **params): op = CoverageProcessor.getInstance().getOperation(name) p = op.getParameters() for k,v in params.iteritems(): p.parameter(k).setValue(v) return op.doOperation(p, None) core.registerTypeMapping(GridCoverage2D, Raster, lambda x: Raster(None, coverage=x)) core.registerTypeUnmapping(Raster, GridCoverage2D, lambda x: x._coverage) class Histogram(object): def __init__(self, histo): self._histo = histo def bin(self, i, band=0): h = self._histo if i < h.getNumBins(band): return (h.getBinLowValue(band, i), h.getBinLowValue(band, i+1)) def bins(self, band=0): return [self.bin(i, band) for i in range(len(self))] def count(self, i, band=0):
POINT (1071693 554290) .. seealso:: :func:`Projection.transform` """ return Projection(src).transform(obj, dst) def projections(): """ Iterator over all defined projections:: for p in proj.projections(): .. This function returns :class:`Projection` objects. """ for code in crs.getSupportedCodes('epsg'): try: yield Projection('epsg:%s' % code) except: # todo: log this pass core.registerTypeMapping(CRS, Projection) core.registerTypeUnmapping(Projection, CRS, lambda x: x._crs)
raise Exception('toGML() not available, GML libraries not on classpath.') features = self._source.features fc = WfsFactory.eINSTANCE.createFeatureCollectionType() fc.feature.add(features) e = Encoder(WFSConfiguration()) uri = self._source.name.namespaceURI prefix = 'gt' e.namespaces.declarePrefix(prefix,uri) e.indenting = True e.encode(fc, WFS.FeatureCollection, out) def toJSON(self,out=sys.stdout): try: from org.geotools.geojson import GeoJSONWriter except ImportError: raise Exception('toJSON() not available, GeoJSON libraries not on classpath.') else: features = self._source.features w = GeoJSONWriter() w.write(features,out) @staticmethod def _newname(): Layer._id += 1 return 'layer_%d' % Layer._id core.registerTypeMapping(FeatureSource, Layer, lambda x: Layer(fs=x)) core.registerTypeUnmapping(Layer, FeatureSource, lambda x: x._source)
def __getitem__(self, key): return self.get(key) def __iter__(self): for f in self.fields: yield f.name def iterkeys(self): return self.__iter__() def iteritems(self): for f in self.fields: yield f.name, f def keys(self): return [f.name for f in self.fields] def values(self): return self.fields def __repr__(self): flds = ['%s' % str(fld) for fld in self.fields] return '%s [%s]' % (self.name, string.join(flds,', ')) def __eq__(self, other): return other and self._type == other._type core.registerTypeMapping(FeatureType, Schema, lambda x: Schema(ft=x)) core.registerTypeUnmapping(Schema, FeatureType, lambda x: x._type)