2 c# geospatial gdal
我正在使用GDAL API来读取光栅文件......我在某些地方发现python版本有ReadAsArray,我假设这会将光栅文件的数据作为二维数组,C#是否有类似的选项,或者至少可以你告诉我该怎么做?非常感谢!
在与GDAL的C#绑定中没有等效的ReadAsArray函数.ReadAsArray是可用的,因为GDAL Python绑定应该可以与NumPy定义的阵列协议一起使用,因此该功能可用于此特定目的.
但是,您可以使用Band类的ReadRaster方法将像素读入一维数组,然后迭代这样的一维数组,因为它是二维数组.
让我们假设您读取带width x height
尺寸的带的像素:
byte[] bits = new byte[width * height];
band.ReadRaster(0, 0, width, height, bits, width, height, 0, 0);
Run Code Online (Sandbox Code Playgroud)
现在,您可以根据以下公式计算像素的索引: column + row * width
for (int col = 0; col < width; col++)
{
for (int row = 0; row < height; row++)
{
// equivalent to bits[col][row] if bits is 2-dimension array
byte pixel = bits[col + row * width];
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2625 次 |
最近记录: |