當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。