本文整理汇总了Python中gdal.GetDriverByName方法的典型用法代码示例。如果您正苦于以下问题:Python gdal.GetDriverByName方法的具体用法?Python gdal.GetDriverByName怎么用?Python gdal.GetDriverByName使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类gdal
的用法示例。
在下文中一共展示了gdal.GetDriverByName方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: writeFile
# 需要导入模块: import gdal [as 别名]
# 或者: from gdal import GetDriverByName [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 GetDriverByName [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: save_raster
# 需要导入模块: import gdal [as 别名]
# 或者: from gdal import GetDriverByName [as 别名]
def save_raster(array, path, dst_filename):
""" Save the final multiband array based on an existing raster """
example = gdal.Open(path)
x_pixels = array.shape[2] # number of pixels in x
y_pixels = array.shape[1] # number of pixels in y
bands = array.shape[0]
driver = gdal.GetDriverByName('GTiff')
dataset = driver.Create(dst_filename,x_pixels,
y_pixels, bands ,gdal.GDT_Int32)
geotrans=example.GetGeoTransform() #get GeoTranform from existed 'data0'
proj=example.GetProjection() #you can get from a exsited tif or import
dataset.SetGeoTransform(geotrans)
dataset.SetProjection(proj)
for b in range(bands):
dataset.GetRasterBand(b+1).WriteArray(array[b,:,:])
dataset.FlushCache()
示例4: array2raster
# 需要导入模块: import gdal [as 别名]
# 或者: from gdal import GetDriverByName [as 别名]
def array2raster(newRasterfn,rasterOrigin,pixelWidth,pixelHeight,array, nodata, EPSG):
"""This function take a regular array to create a raster with it"""
print("I am dealing with nodata values")
array[np.isnan(array)] = nodata # Dealing with Nodata values
print("I am writing the raster")
cols = array.shape[1]
rows = array.shape[0]
originX = rasterOrigin[0]
originY = rasterOrigin[1]
driver = gdal.GetDriverByName('ENVI')
outRaster = driver.Create(newRasterfn, cols, rows, 1, gdal.GDT_Float64)
outRaster.SetGeoTransform((originX, pixelWidth, 0, originY, 0, pixelHeight))
outband = outRaster.GetRasterBand(1)
#outband.SetNoDataValue(nodata)
outband.WriteArray(array)
#outband.SetNoDataValue(nodata)
outRasterSRS = osr.SpatialReference()
outRasterSRS.ImportFromEPSG(EPSG)
outRaster.SetProjection(outRasterSRS.ExportToWkt())
outband.FlushCache()
示例5: save_raster_simple
# 需要导入模块: import gdal [as 别名]
# 或者: from gdal import GetDriverByName [as 别名]
def save_raster_simple(array, path, dst_filename):
""" Save an array base on an existing raster """
example = gdal.Open(path)
x_pixels = array.shape[1] # number of pixels in x
y_pixels = array.shape[0] # number of pixels in y
bands = 1
driver = gdal.GetDriverByName('GTiff')
dataset = driver.Create(dst_filename,x_pixels, y_pixels, bands,
gdal.GDT_Int32)
geotrans=example.GetGeoTransform() #get GeoTranform from existed 'data0'
proj=example.GetProjection() #you can get from a exsited tif or import
dataset.SetGeoTransform(geotrans)
dataset.SetProjection(proj)
dataset.GetRasterBand(1).WriteArray(array[:,:])
dataset.FlushCache()
示例6: save_raster_memory
# 需要导入模块: import gdal [as 别名]
# 或者: from gdal import GetDriverByName [as 别名]
def save_raster_memory(array, path):
""" Save a raster into memory """
example = gdal.Open(path)
x_pixels = array.shape[1] # number of pixels in x
y_pixels = array.shape[0] # number of pixels in y
driver = gdal.GetDriverByName('MEM')
dataset = driver.Create('',x_pixels, y_pixels, 1,gdal.GDT_Int32)
dataset.GetRasterBand(1).WriteArray(array[:,:])
# follow code is adding GeoTranform and Projection
geotrans=example.GetGeoTransform() #get GeoTranform from existed 'data0'
proj=example.GetProjection() #you can get from a exsited tif or import
dataset.SetGeoTransform(geotrans)
dataset.SetProjection(proj)
return dataset
示例7: create_temp_tiff
# 需要导入模块: import gdal [as 别名]
# 或者: from gdal import GetDriverByName [as 别名]
def create_temp_tiff(self, name, content=np.ones([3, 3, 3]), geotransform=(10, 10, 0, 10, 0, -10)):
"""Creates a temporary geotiff in self.path
"""
if len(content.shape) != 3:
raise IndexError
path = os.path.join(self.path, name)
driver = gdal.GetDriverByName('GTiff')
new_image = driver.Create(
path,
xsize=content.shape[1],
ysize=content.shape[2],
bands=content.shape[0],
eType=gdal.GDT_Byte
)
new_image.SetGeoTransform(geotransform)
for band in range(content.shape[0]):
raster_band = new_image.GetRasterBand(band+1)
raster_band.WriteArray(content[band, ...].T)
new_image.SetProjection(self.srs.ExportToWkt())
new_image.FlushCache()
self.images.append(new_image)
self.image_paths.append(path)
示例8: create_temp_shape
# 需要导入模块: import gdal [as 别名]
# 或者: from gdal import GetDriverByName [as 别名]
def create_temp_shape(self, name, point_list):
vector_file = os.path.join(self.temp_dir.name, name)
shape_driver = ogr.GetDriverByName("ESRI Shapefile") # Depreciated; replace at some point
vector_data_source = shape_driver.CreateDataSource(vector_file)
vector_layer = vector_data_source.CreateLayer("geometry", self.srs, geom_type=ogr.wkbPolygon)
ring = ogr.Geometry(ogr.wkbLinearRing)
for point in point_list:
ring.AddPoint(point[0], point[1])
poly = ogr.Geometry(ogr.wkbPolygon)
poly.AddGeometry(ring)
vector_feature_definition = vector_layer.GetLayerDefn()
vector_feature = ogr.Feature(vector_feature_definition)
vector_feature.SetGeometry(poly)
vector_layer.CreateFeature(vector_feature)
vector_layer.CreateField(ogr.FieldDefn("class", ogr.OFTInteger))
feature = ogr.Feature(vector_layer.GetLayerDefn())
feature.SetField("class", 3)
vector_data_source.FlushCache()
self.vectors.append(vector_data_source) # Check this is the right thing to be saving here
self.vector_paths.append(vector_file)
示例9: geotiff_dir
# 需要导入模块: import gdal [as 别名]
# 或者: from gdal import GetDriverByName [as 别名]
def geotiff_dir():
"""
Returns
-------
A pointer to a temporary folder that contains a 3-band geotiff
of 3x3, with all values being 1.
"""
tempDir = tempfile.TemporaryDirectory()
fileformat = "GTiff"
driver = gdal.GetDriverByName(fileformat)
metadata = driver.GetMetadata()
tempPath = os.path.join(tempDir.name)
testDataset = driver.Create(os.path.join(tempDir.name, "tempTiff.tif"),
xsize=3, ysize=3, bands=3, eType=gdal.GDT_CFloat32)
for i in range(3):
testDataset.GetRasterBand(i+1).WriteArray(np.ones([3, 3]))
testDataset = None
yield tempPath
tempDir.cleanup()
示例10: driver_create
# 需要导入模块: import gdal [as 别名]
# 或者: from gdal import GetDriverByName [as 别名]
def driver_create(self):
"""
Use gdal.Driver.Create to create out_image.tiff.
"""
file_name = os.path.join(self.data_dir, "out_image.tiff")
image_format = "GTiff"
driver = gdal.GetDriverByName(str(image_format))
data_source = driver.Create(file_name, 50, 50, 1, gdal.GDT_Byte)
raster = np.ones((50, 50), dtype=np.uint8)
raster[10:40, 10:40] = 0
raster = raster * 255
data_source.GetRasterBand(1).WriteArray(raster)
# Avoid PermissionError on Windows when trying to delete
# file_name. From:
# http://stackoverflow.com/questions/22068148/extremely-frustrating-behavior-with-windowserror-error-32-to-remove-temporary
data_source.FlushCache()
driver = None
data_source = None
os.remove(file_name)
示例11: save_img
# 需要导入模块: import gdal [as 别名]
# 或者: from gdal import GetDriverByName [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
示例12: rasterize
# 需要导入模块: import gdal [as 别名]
# 或者: from gdal import GetDriverByName [as 别名]
def rasterize(data, vectorSrc, field, outFile):
dataSrc = gdal.Open(data)
import ogr
shp = ogr.Open(vectorSrc)
lyr = shp.GetLayer()
driver = gdal.GetDriverByName('GTiff')
dst_ds = driver.Create(
outFile,
dataSrc.RasterXSize,
dataSrc.RasterYSize,
1,
gdal.GDT_UInt16)
dst_ds.SetGeoTransform(dataSrc.GetGeoTransform())
dst_ds.SetProjection(dataSrc.GetProjection())
if field is None:
gdal.RasterizeLayer(dst_ds, [1], lyr, None)
else:
OPTIONS = ['ATTRIBUTE=' + field]
gdal.RasterizeLayer(dst_ds, [1], lyr, None, options=OPTIONS)
data, dst_ds, shp, lyr = None, None, None, None
return outFile
示例13: calc_raster_terrain_fixed_elevation
# 需要导入模块: import gdal [as 别名]
# 或者: from gdal import GetDriverByName [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
示例14: Get_Extent
# 需要导入模块: import gdal [as 别名]
# 或者: from gdal import GetDriverByName [as 别名]
def Get_Extent(input_lyr):
"""
Obtain the input layer extent (xmin, ymin, xmax, ymax)
"""
# Input
filename, ext = os.path.splitext(input_lyr)
if ext.lower() == '.shp':
inp_driver = ogr.GetDriverByName('ESRI Shapefile')
inp_source = inp_driver.Open(input_lyr)
inp_lyr = inp_source.GetLayer()
x_min, x_max, y_min, y_max = inp_lyr.GetExtent()
inp_lyr = None
inp_source = None
elif ext.lower() == '.tif':
inp_lyr = gdal.Open(input_lyr)
inp_transform = inp_lyr.GetGeoTransform()
x_min = inp_transform[0]
x_max = x_min + inp_transform[1] * inp_lyr.RasterXSize
y_max = inp_transform[3]
y_min = y_max + inp_transform[5] * inp_lyr.RasterYSize
inp_lyr = None
else:
raise Exception('The input data type is not recognized')
return (x_min, y_min, x_max, y_max)
示例15: Save_as_MEM
# 需要导入模块: import gdal [as 别名]
# 或者: from gdal import GetDriverByName [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)