2
私はGDAL APIを使ってラスターファイルを読み込んでいました...私はいくつかの場所でPythonバージョンにReadAsArrayがあることを発見しました。これは2次元配列としてラスターファイルのデータを取ります。 C#、または少なくとも私はそれを行う方法を示すことができますか?どうもありがとう!GDAL C#ReadAsArray
私はGDAL APIを使ってラスターファイルを読み込んでいました...私はいくつかの場所でPythonバージョンにReadAsArrayがあることを発見しました。これは2次元配列としてラスターファイルのデータを取ります。 C#、または少なくとも私はそれを行う方法を示すことができますか?どうもありがとう!GDAL C#ReadAsArray
GDALへのC#バインディングには、ReadAsArrayの機能がありません。 ReadAsArrayは、GDAL PythonバインディングがNumPyで定義された配列プロトコルで使用可能であるため、この特定の目的のためにこの関数が存在するため、使用できます。
しかし、BandクラスのReadRasterメソッドを使用すると、ピクセルを1次元配列に読み込んだり、そのような1次元配列を2次元配列と同じように反復処理することができます。
のは、あなたがwidth x height
寸法のバンドのピクセルを読むと仮定しましょう: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];
}
}
:あなたはこの式に従ってピクセルのインデックスを計算することができ、今
byte[] bits = new byte[width * height];
band.ReadRaster(0, 0, width, height, bits, width, height, 0, 0);