当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python Django GDALRaster用法及代码示例


本文介绍 django.contrib.gis.gdal.GDALRaster 的用法。

声明

class GDALRaster(ds_input, write=False)

GDALRaster 的构造函数接受两个参数。第一个参数定义光栅源,第二个参数定义是否应在写入模式下打开光栅。对于新创建的栅格,将忽略第二个参数,并且始终以写入模式创建新栅格。

第一个参数可以采用三种形式:表示文件路径(文件系统或 GDAL 虚拟文件系统)的字符串、具有定义新栅格的值的字典或表示栅格文件的字节对象。

如果输入是文件路径,则从那里打开栅格。如果输入是字典中的原始数据,则需要参数 widthheightsrid 。如果输入是字节对象,它将使用 GDAL 虚拟文件系统打开。

有关如何使用字典输入创建栅格的详细说明,请参阅从数据创建栅格。有关如何在虚拟文件系统中创建栅格的详细说明,请参阅使用 GDAL 的虚拟文件系统。

以下示例显示了如何从不同的输入源创建栅格(使用来自 GeoDjango 测试的示例数据;另请参阅示例数据部分)。

>>> from django.contrib.gis.gdal import GDALRaster
>>> rst = GDALRaster('/path/to/your/raster.tif', write=False)
>>> rst.name
'/path/to/your/raster.tif'
>>> rst.width, rst.height  # This file has 163 x 174 pixels
(163, 174)
>>> rst = GDALRaster({  # Creates an in-memory raster
...     'srid': 4326,
...     'width': 4,
...     'height': 4,
...     'datatype': 1,
...     'bands': [{
...         'data': (2, 3),
...         'offset': (1, 1),
...         'size': (2, 2),
...         'shape': (2, 1),
...         'nodata_value': 5,
...     }]
... })
>>> rst.srs.srid
4326
>>> rst.width, rst.height
(4, 4)
>>> rst.bands[0].data()
array([[5, 5, 5, 5],
       [5, 2, 3, 5],
       [5, 2, 3, 5],
       [5, 5, 5, 5]], dtype=uint8)
>>> rst_file = open('/path/to/your/raster.tif', 'rb')
>>> rst_bytes = rst_file.read()
>>> rst = GDALRaster(rst_bytes)
>>> rst.is_vsi_based
True
>>> rst.name  # Stored in a random path in the vsimem filesystem.
'/vsimem/da300bdb-129d-49a8-b336-e410a9428dad'
在 Django 4.0 中更改:

允许在任何 GDAL 虚拟文件系统中创建栅格。

相关用法


注:本文由纯净天空筛选整理自djangoproject.com大神的英文原创作品 django.contrib.gis.gdal.GDALRaster。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。