Bagaimana saya bisa mendapatkan koordinat yang diproyeksikan serta nilai piksel aktual pada koordinat tersebut dari file GeoTiff dan kemudian menyimpannya ke dalam array numpy? Saya punya file arsenci020l.tif, dan koordinatnya dalam meter. Di bawah ini adalah keluaran singkat dari gdalinfo yang saya jalankan di sana.
~$ gdalinfo arsenci020l.tif
Driver: GTiff/GeoTIFF
Files: arsenci020l.tif
arsenci020l.tfw
Size is 10366, 7273
Coordinate System is:
PROJCS["Lambert Azimuthal Equal Area projection with arbitrary plane grid; projection center 100.0 degrees W, 45.0 degrees N",
GEOGCS["WGS 84",
DATUM["WGS_1984",
SPHEROID["WGS 84",6378137,298.257223563,
AUTHORITY["EPSG","7030"]],
AUTHORITY["EPSG","6326"]],
PRIMEM["Greenwich",0],
UNIT["degree",0.0174532925199433],
AUTHORITY["EPSG","4326"]],
PROJECTION["Lambert_Azimuthal_Equal_Area"],
PARAMETER["latitude_of_center",45],
PARAMETER["longitude_of_center",-100],
PARAMETER["false_easting",0],
PARAMETER["false_northing",0],
UNIT["metre",1,
AUTHORITY["EPSG","9001"]]]
Origin = (-6086629.000000000000000,4488761.000000000000000)
Pixel Size = (1000.000000000000000,-1000.000000000000000)
...
Ada pertanyaan serupa di sini tentang mendapatkan koordinat lat / long dari tiff (Dapatkan Latitude dan Longitude dari File GeoTIFF) dan jawabannya menunjukkan bagaimana mendapatkan hanya koordinat x dan y piksel kiri atas. Saya perlu mendapatkan SEMUA koordinat piksel yang diproyeksikan serta mendapatkan nilai-nilai piksel dan menyimpannya dalam array numpy. Bagaimana saya bisa melakukannya?
python
gdal
geotiff-tiff
numpy
irakhman
sumber
sumber
Jawaban:
akan menambahkan sebagai komentar, tetapi agak lama - jika Anda ingin menggunakan gdal / ogr dalam python - sesuatu seperti ini mungkin bekerja (diretas bersama dari beberapa kode lain yang saya miliki - tidak diuji!) Ini juga mengasumsikan bahwa daripada mencari yang terdekat pixel raster ke centroid poligon, Anda cukup menanyakan raster pada xy centroid. saya tidak tahu apa pengorbanan kecepatan mungkin ...
sumber
Ini seharusnya membuat Anda pergi. Nilai raster dibaca menggunakan rasterio , dan koordinat pusat piksel dikonversi ke Eastings / Northings menggunakan affine , yang kemudian dikonversi ke Latitude / Longitude menggunakan pyproj . Kebanyakan array memiliki bentuk yang sama dengan input raster.
sumber
affine
hanya alias untuktransform
, dan alias telah dihapus dari versi rasterio terbaru. Saya mengedit jawabannya tetapi sepertinya harus ditinjau oleh rekan sejak saya baru di sini. :)A.shape
, yang hanya memiliki dua dimensi.