本文整理汇总了Python中gdal.GDT_Float32方法的典型用法代码示例。如果您正苦于以下问题:Python gdal.GDT_Float32方法的具体用法?Python gdal.GDT_Float32怎么用?Python gdal.GDT_Float32使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类gdal
的用法示例。
在下文中一共展示了gdal.GDT_Float32方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: writeFile
# 需要导入模块: import gdal [as 别名]
# 或者: from gdal import GDT_Float32 [as 别名]
def writeFile(filename,geotransform,geoprojection,data):
(x,y) = data.shape
format = "GTiff"
noDataValue = -9999
driver = gdal.GetDriverByName(format)
# you can change the dataformat but be sure to be able to store negative values including -9999
dst_datatype = gdal.GDT_Float32
#print(data)
dst_ds = driver.Create(filename,y,x,1,dst_datatype)
dst_ds.GetRasterBand(1).WriteArray(data)
dst_ds.GetRasterBand(1).SetNoDataValue( noDataValue )
dst_ds.SetGeoTransform(geotransform)
dst_ds.SetProjection(geoprojection)
return 1
示例2: writeFile
# 需要导入模块: import gdal [as 别名]
# 或者: from gdal import GDT_Float32 [as 别名]
def writeFile(filename,geotransform,geoprojection,data):
(x,y) = data.shape
format = "GTiff"
noDataValue = -9999
driver = gdal.GetDriverByName(format)
# you can change the dataformat but be sure to be able to store negative values including -9999
dst_datatype = gdal.GDT_Float32
#print(data)
dst_ds = driver.Create(filename,y,x,1,dst_datatype)
dst_ds.GetRasterBand(1).WriteArray(data)
dst_ds.GetRasterBand(1).SetNoDataValue( noDataValue )
dst_ds.SetGeoTransform(geotransform)
dst_ds.SetProjection(geoprojection)
return 1
示例3: calc_ndvi
# 需要导入模块: import gdal [as 别名]
# 或者: from gdal import GDT_Float32 [as 别名]
def calc_ndvi(raster_path, output_path):
raster = gdal.Open(raster_path)
out_raster = create_matching_dataset(raster, output_path, datatype=gdal.GDT_Float32)
array = raster.GetVirtualMemArray()
out_array = out_raster.GetVirtualMemArray(eAccess=gdal.GA_Update)
R = array[2, ...]
I = array[3, ...]
out_array[...] = (R-I)/(R+I)
out_array[...] = np.where(out_array == -2147483648, 0, out_array)
R = None
I = None
array = None
out_array = None
raster = None
out_raster = None
示例4: save_img
# 需要导入模块: import gdal [as 别名]
# 或者: from gdal import GDT_Float32 [as 别名]
def save_img(data, geotransform, proj, outPath, noDataValue=np.nan, fieldNames=[]):
# Start the gdal driver for GeoTIFF
if outPath == "MEM":
driver = gdal.GetDriverByName("MEM")
driverOpt = []
shape = data.shape
if len(shape) > 2:
ds = driver.Create(outPath, shape[1], shape[0], shape[2], gdal.GDT_Float32, driverOpt)
ds.SetProjection(proj)
ds.SetGeoTransform(geotransform)
for i in range(shape[2]):
ds.GetRasterBand(i+1).WriteArray(data[:, :, i])
ds.GetRasterBand(i+1).SetNoDataValue(noDataValue)
else:
ds = driver.Create(outPath, shape[1], shape[0], 1, gdal.GDT_Float32, driverOpt)
ds.SetProjection(proj)
ds.SetGeoTransform(geotransform)
ds.GetRasterBand(1).WriteArray(data)
ds.GetRasterBand(1).SetNoDataValue(noDataValue)
return ds
示例5: calc_raster_terrain_fixed_elevation
# 需要导入模块: import gdal [as 别名]
# 或者: from gdal import GDT_Float32 [as 别名]
def calc_raster_terrain_fixed_elevation(crs, elevation, grid_size, raster_path, locator, x_max, x_min, y_max,
y_min):
# local variables:
temp_shapefile = locator.get_temporary_file("terrain.shp")
cols = int((x_max - x_min) / grid_size)
rows = int((y_max - y_min) / grid_size)
shapes = Polygon([[x_min, y_min], [x_max, y_min], [x_max, y_max], [x_min, y_max], [x_min, y_min]])
geodataframe = Gdf(index=[0], crs=crs, geometry=[shapes])
geodataframe.to_file(temp_shapefile)
# 1) opening the shapefile
source_ds = ogr.Open(temp_shapefile)
source_layer = source_ds.GetLayer()
target_ds = gdal.GetDriverByName('GTiff').Create(raster_path, cols, rows, 1, gdal.GDT_Float32) ##COMMENT 2
target_ds.SetGeoTransform((x_min, grid_size, 0, y_max, 0, -grid_size)) ##COMMENT 3
# 5) Adding a spatial reference ##COMMENT 4
target_dsSRS = osr.SpatialReference()
target_dsSRS.ImportFromProj4(crs)
target_ds.SetProjection(target_dsSRS.ExportToWkt())
band = target_ds.GetRasterBand(1)
band.SetNoDataValue(-9999) ##COMMENT 5
gdal.RasterizeLayer(target_ds, [1], source_layer, burn_values=[elevation]) ##COMMENT 6
target_ds = None # closing the file
示例6: Save_as_MEM
# 需要导入模块: import gdal [as 别名]
# 或者: from gdal import GDT_Float32 [as 别名]
def Save_as_MEM(data='', geo='', projection=''):
"""
This function save the array as a memory file
Keyword arguments:
data -- [array], dataset of the geotiff
geo -- [minimum lon, pixelsize, rotation, maximum lat, rotation,
pixelsize], (geospatial dataset)
projection -- interger, the EPSG code
"""
# save as a geotiff
driver = gdal.GetDriverByName("MEM")
dst_ds = driver.Create('', int(data.shape[1]), int(data.shape[0]), 1,
gdal.GDT_Float32, ['COMPRESS=LZW'])
srse = osr.SpatialReference()
if projection == '':
srse.SetWellKnownGeogCS("WGS84")
else:
srse.SetWellKnownGeogCS(projection)
dst_ds.SetProjection(srse.ExportToWkt())
dst_ds.GetRasterBand(1).SetNoDataValue(-9999)
dst_ds.SetGeoTransform(geo)
dst_ds.GetRasterBand(1).WriteArray(data)
return(dst_ds)
示例7: make_geotiff
# 需要导入模块: import gdal [as 别名]
# 或者: from gdal import GDT_Float32 [as 别名]
def make_geotiff(data, length, width, latn_p, lonw_p, dlat, dlon, outfile, compress_option):
if data.dtype == np.float32:
dtype = gdal.GDT_Float32
nodata = np.nan ## or 0?
elif data.dtype == np.uint8:
dtype = gdal.GDT_Byte
nodata = None
driver = gdal.GetDriverByName('GTiff')
outRaster = driver.Create(outfile, width, length, 1, dtype, options=compress_option)
outRaster.SetGeoTransform((lonw_p, dlon, 0, latn_p, 0, dlat))
outband = outRaster.GetRasterBand(1)
outband.WriteArray(data)
if nodata is not None: outband.SetNoDataValue(nodata)
outRaster.SetMetadataItem('AREA_OR_POINT', 'Point')
outRasterSRS = osr.SpatialReference()
outRasterSRS.ImportFromEPSG(4326)
outRaster.SetProjection(outRasterSRS.ExportToWkt())
outband.FlushCache()
return
#%% Main
示例8: test_band_maths
# 需要导入模块: import gdal [as 别名]
# 或者: from gdal import GDT_Float32 [as 别名]
def test_band_maths():
os.chdir(os.path.dirname(os.path.abspath(__file__)))
try:
os.remove("test_outputs/ndvi.tif")
except FileNotFoundError:
pass
test_file = "test_data/bands.tif"
test_outputs = "test_outputs/ndvi.tif"
pyeo.raster_manipulation.apply_band_function(test_file,
pyeo.raster_manipulation.ndvi_function,
[2, 3],
test_outputs,
out_datatype=gdal.GDT_Float32)
示例9: reproject_dataset
# 需要导入模块: import gdal [as 别名]
# 或者: from gdal import GDT_Float32 [as 别名]
def reproject_dataset(dataset, output_file_name, wkt_from="+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +a=6371007.181 +b=6371007.181 +units=m +no_defs", epsg_to=32643, pixel_spacing=1000, file_format='GTiff'):
'''
:param dataset: Modis subset name use gdal.GetSubdatasets()
:param output_file_name: file location along with proper extension
:param wkt_from: Modis wkt (default)
:param epsg_to: integer default(32643)
:param pixel_spacing: in metres
:param file_format: default GTiff
:return:
'''
wgs84 = osr.SpatialReference()
wgs84.ImportFromEPSG(epsg_to)
modis = osr.SpatialReference()
modis.ImportFromProj4(wkt_from)
tx = osr.CoordinateTransformation(modis, wgs84)
g = gdal.Open(dataset)
geo_t = g.GetGeoTransform()
print geo_t
x_size = g.RasterXSize
y_size = g.RasterYSize
(ulx, uly, ulz) = tx.TransformPoint(geo_t[0], geo_t[3])
(lrx, lry, lrz) = tx.TransformPoint(geo_t[0] + (geo_t[1]*x_size), geo_t[3]+ (geo_t[5]*y_size))
mem_drv = gdal.GetDriverByName(file_format)
dest = mem_drv.Create(output_file_name, int((lrx-ulx)/pixel_spacing), int((uly - lry)/pixel_spacing), 1, gdal.GDT_Float32)
new_geo = ([ulx, pixel_spacing, geo_t[2], uly, geo_t[4], -pixel_spacing])
dest.SetGeoTransform(new_geo)
dest.SetProjection(wgs84.ExportToWkt())
gdal.ReprojectImage(g, dest, modis.ExportToWkt(), wgs84.ExportToWkt(), gdal.GRA_Bilinear)
print "reprojected"
示例10: getDTfromGDAL
# 需要导入模块: import gdal [as 别名]
# 或者: from gdal import GDT_Float32 [as 别名]
def getDTfromGDAL(gdal_dt):
"""
Returns datatype (numpy/scipy) from gdal_dt.
Parameters
----------
gdal_dt : datatype
data.GetRasterBand(1).DataType
Return
----------
dt : datatype
"""
if gdal_dt == gdal.GDT_Byte:
dt = 'uint8'
elif gdal_dt == gdal.GDT_Int16:
dt = 'int16'
elif gdal_dt == gdal.GDT_UInt16:
dt = 'uint16'
elif gdal_dt == gdal.GDT_Int32:
dt = 'int32'
elif gdal_dt == gdal.GDT_UInt32:
dt = 'uint32'
elif gdal_dt == gdal.GDT_Float32:
dt = 'float32'
elif gdal_dt == gdal.GDT_Float64:
dt = 'float64'
elif gdal_dt == gdal.GDT_CInt16 or gdal_dt == gdal.GDT_CInt32 or gdal_dt == gdal.GDT_CFloat32 or gdal_dt == gdal.GDT_CFloat64:
dt = 'complex64'
else:
print('Data type unkown')
# exit()
return dt
示例11: getGDALGDT
# 需要导入模块: import gdal [as 别名]
# 或者: from gdal import GDT_Float32 [as 别名]
def getGDALGDT(dt):
"""
Need arr.dtype.name in entry.
Returns gdal_dt from dt (numpy/scipy).
Parameters
----------
dt : datatype
Return
----------
gdal_dt : gdal datatype
"""
if dt == 'bool' or dt == 'uint8':
gdal_dt = gdal.GDT_Byte
elif dt == 'int8' or dt == 'int16':
gdal_dt = gdal.GDT_Int16
elif dt == 'uint16':
gdal_dt = gdal.GDT_UInt16
elif dt == 'int32':
gdal_dt = gdal.GDT_Int32
elif dt == 'uint32':
gdal_dt = gdal.GDT_UInt32
elif dt == 'int64' or dt == 'uint64' or dt == 'float16' or dt == 'float32':
gdal_dt = gdal.GDT_Float32
elif dt == 'float64':
gdal_dt = gdal.GDT_Float64
elif dt == 'complex64':
gdal_dt = gdal.GDT_CFloat64
else:
print('Data type non-suported')
# exit()
return gdal_dt
示例12: mk_geotiff_obj
# 需要导入模块: import gdal [as 别名]
# 或者: from gdal import GDT_Float32 [as 别名]
def mk_geotiff_obj(raster, fn, bands=1, gdal_data_type=gdal.GDT_Float32,
lat=[46, 45], lon=[-73, -72]):
"""
Creates a new geotiff file objects using the WGS84 coordinate system, saves
it to disk, and returns a handle to the python file object and driver
Parameters
------------
raster : array
Numpy array of the raster data to be added to the object
fn : str
Name of the geotiff file
bands : int (optional)
See :py:func:`gdal.GetDriverByName('Gtiff').Create
gdal_data : gdal.GDT_<type>
Gdal data type (see gdal.GDT_...)
lat : list
northern lat, southern lat
lon : list
[western lon, eastern lon]
"""
NNi, NNj = raster.shape
driver = gdal.GetDriverByName('GTiff')
obj = driver.Create(fn, NNj, NNi, bands, gdal_data_type)
pixel_height = -np.abs(lat[0] - lat[1]) / (NNi - 1.0)
pixel_width = np.abs(lon[0] - lon[1]) / (NNj - 1.0)
obj.SetGeoTransform([lon[0], pixel_width, 0, lat[0], 0, pixel_height])
srs = osr.SpatialReference()
srs.SetWellKnownGeogCS('WGS84')
obj.SetProjection(srs.ExportToWkt())
obj.GetRasterBand(1).WriteArray(raster)
return obj, driver
示例13: export_raster
# 需要导入模块: import gdal [as 别名]
# 或者: from gdal import GDT_Float32 [as 别名]
def export_raster(self, raster, fname, title, res=None):
""" Write array to raster file with gdal
Parameters
----------
raster : ndarray
raster to be exported
fname : str
file name
title : str
gdal title of the file
res : int/float, optional
resolution of the raster in m, if not provided the same as
the input CHM
"""
res = res if res else self.resolution
fname.parent.mkdir(parents=True, exist_ok=True)
driver = gdal.GetDriverByName('GTIFF')
y_pixels, x_pixels = raster.shape
gdal_file = driver.Create(
f'{fname}', x_pixels, y_pixels, 1, gdal.GDT_Float32
)
gdal_file.SetGeoTransform(
(self.ul_lon, res, 0., self.ul_lat, 0., -res)
)
dataset_srs = gdal.osr.SpatialReference()
dataset_srs.ImportFromEPSG(self.epsg)
gdal_file.SetProjection(dataset_srs.ExportToWkt())
band = gdal_file.GetRasterBand(1)
band.SetDescription(title)
band.SetNoDataValue(0.)
band.WriteArray(raster)
gdal_file.FlushCache()
gdal_file = None
示例14: Save_as_tiff
# 需要导入模块: import gdal [as 别名]
# 或者: from gdal import GDT_Float32 [as 别名]
def Save_as_tiff(name='', data='', geo='', projection=''):
"""
This function save the array as a geotiff
Keyword arguments:
name -- string, directory name
data -- [array], dataset of the geotiff
geo -- [minimum lon, pixelsize, rotation, maximum lat, rotation,
pixelsize], (geospatial dataset)
projection -- integer, the EPSG code
"""
# save as a geotiff
driver = gdal.GetDriverByName("GTiff")
dst_ds = driver.Create(name, int(data.shape[1]), int(data.shape[0]), 1,
gdal.GDT_Float32, ['COMPRESS=LZW'])
srse = osr.SpatialReference()
if projection == '':
srse.SetWellKnownGeogCS("WGS84")
else:
try:
if not srse.SetWellKnownGeogCS(projection) == 6:
srse.SetWellKnownGeogCS(projection)
else:
try:
srse.ImportFromEPSG(int(projection))
except:
srse.ImportFromWkt(projection)
except:
try:
srse.ImportFromEPSG(int(projection))
except:
srse.ImportFromWkt(projection)
dst_ds.SetProjection(srse.ExportToWkt())
dst_ds.GetRasterBand(1).SetNoDataValue(-9999)
dst_ds.SetGeoTransform(geo)
dst_ds.GetRasterBand(1).WriteArray(data)
dst_ds = None
return()
示例15: gdal_dataset
# 需要导入模块: import gdal [as 别名]
# 或者: from gdal import GDT_Float32 [as 别名]
def gdal_dataset(out_fname, columns, rows, driver="GTiff", bands=1,
dtype='float32', metadata=None, crs=None,
geotransform=None, creation_opts=None):
"""
Initialises a py-GDAL dataset object for writing image data.
"""
if dtype == 'float32':
gdal_dtype = gdal.GDT_Float32
elif dtype == 'int16':
gdal_dtype = gdal.GDT_Int16
else:
# assume gdal.GDT val is passed to function
gdal_dtype = dtype
# create output dataset
driver = gdal.GetDriverByName(driver)
outds = driver.Create(out_fname, columns, rows, bands, gdal_dtype, options=creation_opts)
# geospatial info
outds.SetGeoTransform(geotransform)
outds.SetProjection(crs)
# add metadata
if metadata is not None:
for k, v in metadata.items():
outds.SetMetadataItem(k, str(v))
return outds