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


Python Django GDALBand.data用法及代碼示例


本文介紹 django.contrib.gis.gdal.GDALBand.data 的用法。

聲明

data(data=None, offset=None, size=None, shape=None)

GDALBand 的像素值的訪問器。如果未提供參數,則返回完整的數據數組。可以通過將偏移量和塊大小指定為元組來請求像素陣列的子集。

如果NumPy 可用,則數據作為NumPy 數組返回。出於性能原因,強烈建議使用 NumPy。

如果提供了data 參數,則將數據寫入GDALBand。輸入可以是以下類型之一 - 壓縮字符串、緩衝區、列表、數組和 NumPy 數組。如果提供了offsetsize 參數,輸入中的項目數通常應對應於波段中的像素總數,或者對應於特定像素值塊的像素數。

如果輸入中的項目數與目標像素塊不同,則必須指定shape 參數。形狀是一個元組,它以像素為單位指定輸入數據的寬度和高度。然後複製數據以更新所選塊的像素值。例如,這對於用單個值填充整個波段很有用。

例如:

>>> rst = GDALRaster({'width': 4, 'height': 4, 'srid': 4326, 'datatype': 1, 'nr_of_bands': 1})
>>> bnd = rst.bands[0]
>>> bnd.data(range(16))
>>> bnd.data()
array([[ 0,  1,  2,  3],
       [ 4,  5,  6,  7],
       [ 8,  9, 10, 11],
       [12, 13, 14, 15]], dtype=int8)
>>> bnd.data(offset=(1, 1), size=(2, 2))
array([[ 5,  6],
       [ 9, 10]], dtype=int8)
>>> bnd.data(data=[-1, -2, -3, -4], offset=(1, 1), size=(2, 2))
>>> bnd.data()
array([[ 0,  1,  2,  3],
       [ 4, -1, -2,  7],
       [ 8, -3, -4, 11],
       [12, 13, 14, 15]], dtype=int8)
>>> bnd.data(data='\x9d\xa8\xb3\xbe', offset=(1, 1), size=(2, 2))
>>> bnd.data()
array([[  0,   1,   2,   3],
       [  4, -99, -88,   7],
       [  8, -77, -66,  11],
       [ 12,  13,  14,  15]], dtype=int8)
>>> bnd.data([1], shape=(1, 1))
>>> bnd.data()
array([[1, 1, 1, 1],
       [1, 1, 1, 1],
       [1, 1, 1, 1],
       [1, 1, 1, 1]], dtype=uint8)
>>> bnd.data(range(4), shape=(1, 4))
array([[0, 0, 0, 0],
       [1, 1, 1, 1],
       [2, 2, 2, 2],
       [3, 3, 3, 3]], dtype=uint8)

相關用法


注:本文由純淨天空篩選整理自djangoproject.com大神的英文原創作品 django.contrib.gis.gdal.GDALBand.data。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。