Python osgeo.ogr.OFTInteger() Examples
The following are 10
code examples of osgeo.ogr.OFTInteger().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
osgeo.ogr
, or try the search function
.
Example #1
Source File: slicing.py From lidar with MIT License | 6 votes |
def polygonize(img,shp_path): # mapping between gdal type and ogr field type type_mapping = {gdal.GDT_Byte: ogr.OFTInteger, gdal.GDT_UInt16: ogr.OFTInteger, gdal.GDT_Int16: ogr.OFTInteger, gdal.GDT_UInt32: ogr.OFTInteger, gdal.GDT_Int32: ogr.OFTInteger, gdal.GDT_Float32: ogr.OFTReal, gdal.GDT_Float64: ogr.OFTReal, gdal.GDT_CInt16: ogr.OFTInteger, gdal.GDT_CInt32: ogr.OFTInteger, gdal.GDT_CFloat32: ogr.OFTReal, gdal.GDT_CFloat64: ogr.OFTReal} ds = gdal.Open(img) prj = ds.GetProjection() srcband = ds.GetRasterBand(1) dst_layername = "Shape" drv = ogr.GetDriverByName("ESRI Shapefile") dst_ds = drv.CreateDataSource(shp_path) srs = osr.SpatialReference(wkt=prj) dst_layer = dst_ds.CreateLayer(dst_layername, srs=srs) raster_field = ogr.FieldDefn('id', type_mapping[srcband.DataType]) dst_layer.CreateField(raster_field) gdal.Polygonize(srcband, srcband, dst_layer, 0, [], callback=None) del img, ds, srcband, dst_ds, dst_layer # convert images in a selected folder to shapefiles
Example #2
Source File: filling.py From lidar with MIT License | 5 votes |
def polygonize(img,shp_path): # mapping between gdal type and ogr field type type_mapping = {gdal.GDT_Byte: ogr.OFTInteger, gdal.GDT_UInt16: ogr.OFTInteger, gdal.GDT_Int16: ogr.OFTInteger, gdal.GDT_UInt32: ogr.OFTInteger, gdal.GDT_Int32: ogr.OFTInteger, gdal.GDT_Float32: ogr.OFTReal, gdal.GDT_Float64: ogr.OFTReal, gdal.GDT_CInt16: ogr.OFTInteger, gdal.GDT_CInt32: ogr.OFTInteger, gdal.GDT_CFloat32: ogr.OFTReal, gdal.GDT_CFloat64: ogr.OFTReal} ds = gdal.Open(img) prj = ds.GetProjection() srcband = ds.GetRasterBand(1) dst_layername = "Shape" drv = ogr.GetDriverByName("ESRI Shapefile") dst_ds = drv.CreateDataSource(shp_path) srs = osr.SpatialReference(wkt=prj) dst_layer = dst_ds.CreateLayer(dst_layername, srs=srs) # raster_field = ogr.FieldDefn('id', type_mapping[srcband.DataType]) raster_field = ogr.FieldDefn('id', type_mapping[gdal.GDT_Int32]) dst_layer.CreateField(raster_field) gdal.Polygonize(srcband, srcband, dst_layer, 0, [], callback=None) del img, ds, srcband, dst_ds, dst_layer # extract sinks from dem
Example #3
Source File: zonalstats.py From wradlib with MIT License | 5 votes |
def _check_src(self, src): """Basic check of source elements (sequence of points or polygons). - array cast of source elements - create ogr_src datasource/layer holding src points/polygons - transforming source grid points/polygons to ogr.geometries on ogr.layer """ tmpfile = tempfile.NamedTemporaryFile(mode="w+b").name ogr_src = io.gdal.gdal_create_dataset( "ESRI Shapefile", os.path.join("/vsimem", tmpfile), gdal_type=gdal.OF_VECTOR ) src = np.array(src) # create memory datasource, layer and create features if src.ndim == 2: geom_type = ogr.wkbPoint # no Polygons, just Points else: geom_type = ogr.wkbPolygon fields = [("index", ogr.OFTInteger)] georef.vector.ogr_create_layer( ogr_src, self._name, srs=self._srs, geom_type=geom_type, fields=fields ) georef.vector.ogr_add_feature(ogr_src, src, name=self._name) return ogr_src
Example #4
Source File: process_level.py From SMAC-M with MIT License | 5 votes |
def featuresToFile(features, dst_drv, dst_name, dst_srs, layer_name=None, geomtype=None, overwrite=True): if not features: # features is empty list print("No Features Created") return drv = ogr.GetDriverByName(dst_drv) if drv is None: print("Driver not available ({})".format(dst_drv)) return dsrc = drv.CreateDataSource(dst_name) if dsrc is None: print("DataSource creation failed") return if not geomtype: f0 = features[0] geomref = features[0].GetGeometryRef() if geomref is not None: geomtype = geomref.GetGeometryType() else: return layer = dsrc.CreateLayer(layer_name, srs=dst_srs, geom_type=geomtype) # Create the fields for the new file for i in range(features[0].GetFieldCount()): fieldDef = features[0].GetFieldDefnRef(i) if "List" in ogr.GetFieldTypeName(fieldDef.GetType()): t = ogr.GetFieldTypeName(fieldDef.GetType())[:-4] if t == "String": fieldDef = ogr.FieldDefn(fieldDef.GetName(), ogr.OFTString) elif t == "Integer": fieldDef = ogr.FieldDefn(fieldDef.GetName(), ogr.OFTInteger) layer.CreateField(fieldDef) # print layer_name for feature in features: layer.CreateFeature(feature)
Example #5
Source File: LSDMap_VectorTools.py From LSDMappingTools with MIT License | 4 votes |
def geologic_maps_modify_shapefile(shapefile_name, geol_field = "xx"): # The shapefile to be rasterized: print('Rasterize ' + shapefile_name) #get path and filename seperately shapefilefilepath = LSDPT.GetPath(shapefile_name) #shapefilename = LSDPT.GetFileNameNoPath(shapefile_name) shapefileshortname = LSDPT.GetFilePrefix(shapefile_name) # get the new shapefile name new_shapefile_name = shapefilefilepath+os.sep+shapefileshortname+"_new.shp" # copy the shapefile into the new shapefile--we don't wwant to mess up the original data print("The New Shapefile name is: "+new_shapefile_name) Copy_Shapefile(shapefile_name,new_shapefile_name) # New shapefile is opened for writing. dataSource = ogr.Open(new_shapefile_name,1) daLayer = dataSource.GetLayer(0) # add a new field new_field = ogr.FieldDefn("GEOL_CODE", ogr.OFTInteger) daLayer.CreateField(new_field) # lets see what the layers are print("Let me tell you what the names of the fields are after I added one!") layerDefinition = daLayer.GetLayerDefn() for i in range(layerDefinition.GetFieldCount()): print(layerDefinition.GetFieldDefn(i).GetName()) # Make a key for the bedrock geol_dict = dict() geol_iterator = 0 geol_field = geol_field # for feature in daLayer: GEOL = feature.GetField(geol_field) if GEOL not in geol_dict: geol_iterator = geol_iterator+1 print("I found a new rock type, GEOL: "+ str(GEOL)+ " and rock type: " + str(geol_iterator)) geol_dict[GEOL] = geol_iterator # now get the geol code this_geol_code = geol_dict[GEOL] # set the feature feature.SetField("GEOL_CODE", this_geol_code) # need to update the layer daLayer.SetFeature(feature) print("The rocks are: ") print(geol_dict) print("All done") return new_shapefile_name, geol_dict
Example #6
Source File: LSD_GeologyTools.py From LSDMappingTools with MIT License | 4 votes |
def geologic_maps_modify_shapefile(shapefile_name, geol_field = "xx"): # The shapefile to be rasterized: print('Rasterize ' + shapefile_name) #get path and filename seperately shapefilefilepath = LSDPT.GetPath(shapefile_name) #shapefilename = LSDPT.GetFileNameNoPath(shapefile_name) shapefileshortname = LSDPT.GetFilePrefix(shapefile_name) # get the new shapefile name new_shapefile_name = shapefilefilepath+os.sep+shapefileshortname+"_new.shp" # copy the shapefile into the new shapefile--we don't wwant to mess up the original data print("The New Shapefile name is: "+new_shapefile_name) Copy_Shapefile(shapefile_name,new_shapefile_name) # New shapefile is opened for writing. dataSource = ogr.Open(new_shapefile_name,1) daLayer = dataSource.GetLayer(0) # add a new field new_field = ogr.FieldDefn("GEOL_CODE", ogr.OFTInteger) daLayer.CreateField(new_field) # lets see what the layers are print("Let me tell you what the names of the fields are after I added one!") layerDefinition = daLayer.GetLayerDefn() for i in range(layerDefinition.GetFieldCount()): print(layerDefinition.GetFieldDefn(i).GetName()) # Make a key for the bedrock geol_dict = dict() geol_iterator = 0 for feature in daLayer: GEOL = feature.GetField(geol_field) if GEOL not in geol_dict: geol_iterator = geol_iterator+1 print("I found a new rock type, GEOL: "+ str(GEOL)+ " and rock type: " + str(geol_iterator)) geol_dict[GEOL] = geol_iterator # now get the geol code this_geol_code = geol_dict[GEOL] # set the feature feature.SetField("GEOL_CODE", this_geol_code) # need to update the layer daLayer.SetFeature(feature) print("The rocks are: ") print(geol_dict) print("All done") return new_shapefile_name, geol_dict
Example #7
Source File: utils.py From Python-Geospatial-Development-Third-Edition with MIT License | 4 votes |
def get_ogr_feature_attribute(attr, feature): attr_name = attr.name if not feature.IsFieldSet(attr_name): return (True, None) if attr.type == ogr.OFTInteger: value = str(feature.GetFieldAsInteger(attr_name)) elif attr.type == ogr.OFTIntegerList: value = repr(feature.GetFieldAsIntegerList(attr_name)) elif attr.type == ogr.OFTReal: value = feature.GetFieldAsDouble(attr_name) value = "%*.*f" % (attr.width, attr.precision, value) elif attr.type == ogr.OFTRealList: values = feature.GetFieldAsDoubleList(attr_name) str_values = [] for value in values: str_values.append("%*.*f" % (attr.width, attr.precision, value)) value = repr(str_values) elif attr.type == ogr.OFTString: value = feature.GetFieldAsString(attr_name) elif attr.type == ogr.OFTStringList: value = repr(feature.GetFieldAsStringList(attr_name)) elif attr.type == ogr.OFTDate: parts = feature.GetFieldAsDateTime(attr_name) year,month,day,hour,minute,second,tzone = parts value = "%d,%d,%d,%d" % (year,month,day,tzone) elif attr.type == ogr.OFTTime: parts = feature.GetFieldAsDateTime(attr_name) year,month,day,hour,minute,second,tzone = parts value = "%d,%d,%d,%d" % (hour,minute,second,tzone) elif attr.type == ogr.OFTDateTime: parts = feature.GetFieldAsDateTime(attr_name) year,month,day,hour,minute,second,tzone = parts value = "%d,%d,%d,%d,%d,%d,%d,%d" % (year,month,day, hour,minute, second,tzone) else: return (False, "Unsupported attribute type: " + str(attr.type)) return (True, value) #############################################################################
Example #8
Source File: utils.py From Python-Geospatial-Development-Third-Edition with MIT License | 4 votes |
def set_ogr_feature_attribute(attr, value, feature): attr_name = attr.name if value == None: feature.UnsetField(attr_name) return if attr.type == ogr.OFTInteger: feature.SetField(attr_name, int(value)) elif attr.type == ogr.OFTIntegerList: integers = eval(value) feature.SetFieldIntegerList(attr_name, integers) elif attr.type == ogr.OFTReal: feature.SetField(attr_name, float(value)) elif attr.type == ogr.OFTRealList: floats = [] for s in eval(value): floats.append(eval(s)) feature.SetFieldDoubleList(attr_name, floats) elif attr.type == ogr.OFTString: feature.SetField(attr_name, value) elif attr.type == ogr.OFTStringList: strings = [] for s in eval(value): strings.append(s.encode(encoding)) feature.SetFieldStringList(attr_name, strings) elif attr.type == ogr.OFTDate: parts = value.split(",") year = int(parts[0]) month = int(parts[1]) day = int(parts[2]) tzone = int(parts[3]) feature.SetField(attr_name, year, month, day, 0, 0, 0, tzone) elif attr.type == ogr.OFTTime: parts = value.split(",") hour = int(parts[0]) minute = int(parts[1]) second = int(parts[2]) tzone = int(parts[3]) feature.SetField(attr_name, 0, 0, 0, hour, minute, second, tzone) elif attr.type == ogr.OFTDateTime: parts = value.split(",") year = int(parts[0]) month = int(parts[1]) day = int(parts[2]) hour = int(parts[3]) minute = int(parts[4]) second = int(parts[5]) tzone = int(parts[6]) feature.SetField(attr_mame, year, month, day, hour, minute, second, tzone)
Example #9
Source File: gdal2cesium.py From gdal2cesium with GNU General Public License v2.0 | 4 votes |
def make_tiles(self): # Generate the vrt files for zoom ranges i = 0 tmp_res = -1 vrt_file = None for tz in range(self.tminz,self.tmaxz+1): res = self.zoom_resolutions[tz][0] # I check only with resx, because resy will be positively correlated if res != tmp_res: if i>0: self.vrts[vrt_file][1] = tz-1 tmp_res = res resx = self.zoom_resolutions[tz][0] resy = self.zoom_resolutions[tz][1] self.make_vrt(resx,resy,i) vrt_file = "cesium_%s.vrt" % i self.vrts[vrt_file] = [tz,None] i += 1 if tz == self.tmaxz: self.vrts[vrt_file][1] = tz self.ti_cum = 0 if self.options.createtileindexshp and self.tilelayer is None: driver = ogr.GetDriverByName('Esri Shapefile') shptileindexfile = os.path.join(self.output,'tilesindex.shp') if os.path.exists(shptileindexfile): for f in glob.glob(self.output+'/tilesindex.*'): os.remove(f) shptileindex = driver.CreateDataSource(shptileindexfile) self.tilelayer = shptileindex.CreateLayer('tiles', None, ogr.wkbLineString) self.tilelayer.CreateField(ogr.FieldDefn('id', ogr.OFTInteger)) self.tilelayer.CreateField(ogr.FieldDefn('zoom', ogr.OFTInteger)) self.tilelayer.CreateField(ogr.FieldDefn('tile', ogr.OFTString)) self.tilelayer.CreateField(ogr.FieldDefn('children', ogr.OFTInteger)) # Generate parent tiles self.generate_fake_parent_tiles() # For each vrt (i.e. zoom range) generate the tiles self.steps = len(self.vrts) self.step = 1 for vrt in self.vrts.keys(): self.process_vrt(vrt) if not self.options.keepfiles: try: os.remove(vrt) except: pass self.step += 1 self.create_layerjsonfile() if self.options.createtileindexshp and self.tilelayer is not None: shptileindex.Destroy() shptileindex = self.tilelayer = feat = geom = None print """Processing finished. Tiles written to "%s".""" % self.output
Example #10
Source File: analysis.py From RHEAS with MIT License | 4 votes |
def cropYield(shapefile, name, startdate="", enddate="", crop="maize", dbname="rheas"): """Extract crop yield from a specified simulation *name* for dates ranging from *startdate* to *enddate*, and saves them a *shapefile*.""" logging.basicConfig(level=logging.INFO, format='%(message)s') log = logging.getLogger(__name__) db = dbio.connect(dbname) cur = db.cursor() datesql = "" if len(startdate) > 0: try: sdt = datetime.strptime(startdate, "%Y-%m-%d") datesql = "and fdate>=date'{0}'".format(sdt.strftime("%Y-%m-%d")) except ValueError: log.warning("Start date is invalid and will be ignored.") if len(enddate) > 0: try: edt = datetime.strptime(enddate, "%Y-%m-%d") datesql += "and fdate<=date'{0}'".format(edt.strftime("%y-%m-%d")) except ValueError: log.warning("End date is invalid and will be ignored.") fsql = "with f as (select gid,geom,gwad,ensemble,fdate from (select gid,geom,gwad,ensemble,fdate,row_number() over (partition by gid,ensemble order by gwad desc) as rn from {0}.dssat) gwadtable where rn=1 {1})".format(name, datesql) sql = "{0} select gid,st_astext(geom),max(gwad) as max_yield,avg(gwad) as avg_yield,stddev(gwad) as std_yield,max(fdate) as fdate from f group by gid,geom".format(fsql) cur.execute(sql) if bool(cur.rowcount): results = cur.fetchall() drv = ogr.GetDriverByName("ESRI Shapefile") ds = drv.CreateDataSource(shapefile) lyr = ds.CreateLayer("yield", geom_type=ogr.wkbMultiPolygon) lyr.CreateField(ogr.FieldDefn("gid", ogr.OFTInteger)) lyr.CreateField(ogr.FieldDefn("average", ogr.OFTReal)) lyr.CreateField(ogr.FieldDefn("maximum", ogr.OFTReal)) lyr.CreateField(ogr.FieldDefn("minimum", ogr.OFTReal)) for row in results: feat = ogr.Feature(lyr.GetLayerDefn()) feat.SetField("gid", row[0]) feat.SetField("maximum", row[2]) feat.SetField("average", row[3]) feat.SetField("minimum", row[4]) feat.SetGeometry(ogr.CreateGeometryFromWkt(row[1])) lyr.CreateFeature(feat) feat.Destroy() ds.Destroy()