本文整理汇总了Python中osgeo.ogr.OFTReal方法的典型用法代码示例。如果您正苦于以下问题:Python ogr.OFTReal方法的具体用法?Python ogr.OFTReal怎么用?Python ogr.OFTReal使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类osgeo.ogr
的用法示例。
在下文中一共展示了ogr.OFTReal方法的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: set_attribute
# 需要导入模块: from osgeo import ogr [as 别名]
# 或者: from osgeo.ogr import OFTReal [as 别名]
def set_attribute(self, name, values):
"""Add/Set given Attribute with given values
Parameters
----------
name : string
Attribute Name
values : :class:`numpy:numpy.ndarray`
Values to fill in attributes
"""
lyr = self.ds.GetLayerByIndex(0)
lyr.ResetReading()
# todo: automatically check for value type
defn = lyr.GetLayerDefn()
if defn.GetFieldIndex(name) == -1:
lyr.CreateField(ogr.FieldDefn(name, ogr.OFTReal))
for i, item in enumerate(lyr):
item.SetField(name, values[i])
lyr.SetFeature(item)
示例2: polygonize
# 需要导入模块: from osgeo import ogr [as 别名]
# 或者: from osgeo.ogr import OFTReal [as 别名]
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
示例3: polygonize
# 需要导入模块: from osgeo import ogr [as 别名]
# 或者: from osgeo.ogr import OFTReal [as 别名]
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
示例4: test_ogr_create_layer
# 需要导入模块: from osgeo import ogr [as 别名]
# 或者: from osgeo.ogr import OFTReal [as 别名]
def test_ogr_create_layer(self):
ds = wradlib.io.gdal_create_dataset("Memory", "test", gdal_type=gdal.OF_VECTOR)
with pytest.raises(TypeError):
georef.ogr_create_layer(ds, "test")
lyr = georef.ogr_create_layer(
ds, "test", geom_type=ogr.wkbPoint, fields=[("test", ogr.OFTReal)]
)
assert isinstance(lyr, ogr.Layer)
示例5: test_ogr_add_feature
# 需要导入模块: from osgeo import ogr [as 别名]
# 或者: from osgeo.ogr import OFTReal [as 别名]
def test_ogr_add_feature(self):
ds = wradlib.io.gdal_create_dataset("Memory", "test", gdal_type=gdal.OF_VECTOR)
georef.ogr_create_layer(
ds, "test", geom_type=ogr.wkbPoint, fields=[("index", ogr.OFTReal)]
)
point = np.array([1198054.34, 648493.09])
parr = np.array([point, point, point])
georef.ogr_add_feature(ds, parr)
georef.ogr_add_feature(ds, parr, name="test")
示例6: test_ogr_add_geometry
# 需要导入模块: from osgeo import ogr [as 别名]
# 或者: from osgeo.ogr import OFTReal [as 别名]
def test_ogr_add_geometry(self):
ds = wradlib.io.gdal_create_dataset("Memory", "test", gdal_type=gdal.OF_VECTOR)
lyr = georef.ogr_create_layer(
ds, "test", geom_type=ogr.wkbPoint, fields=[("test", ogr.OFTReal)]
)
point = ogr.Geometry(ogr.wkbPoint)
point.AddPoint(1198054.34, 648493.09)
georef.ogr_add_geometry(lyr, point, [42.42])
示例7: get_ogr_feature_attribute
# 需要导入模块: from osgeo import ogr [as 别名]
# 或者: from osgeo.ogr import OFTReal [as 别名]
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)
#############################################################################
示例8: set_ogr_feature_attribute
# 需要导入模块: from osgeo import ogr [as 别名]
# 或者: from osgeo.ogr import OFTReal [as 别名]
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)
示例9: cropYield
# 需要导入模块: from osgeo import ogr [as 别名]
# 或者: from osgeo.ogr import OFTReal [as 别名]
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()