Daha çox

Gdal tətbiqetmələrindən istifadə edərək dted yalnız USGEO formatından yüksəklik əldə etmək


Gdal kommunal xidmətlərindən istifadə edərək uzun müddətli vəziyyətə gəlməliyəm


GDAL kitabxanasına zəng etmək üçün python istifadə etdiyiniz düşünülür ... ilk növbədə, raster məlumatlarınızdakı lat / uzun koordinatı olan hüceyrəni (sütun və sətir) tapmalısınız. Sonra hüceyrənin dəyərinə hündürlük kimi baxın.

Rastrın hündürlüyü dəyərini göstərmək üçün səssiz bir sıra istifadə etsəniz daha asan olacaq.

Bu pitonun kodunu yaza bilərsiniz:

osgeo import os, import gdalconst from gdal * import numpy as np # Input DEM file name = raw_input ("Input DEM FILE:") dem = gdal.Open (filename, GA_ReadOnly) geotransform = dem.GetGeoTransform () DEM_Value = np .array (dem_surface.GetRasterBand (1) .ReadAsArray (), dtype = "float") # Rray to Array # Basic Raster's Parameter-i təyin edin Col = dem.RasterXSize Row = dem.RasterYSize Origin_X = geotransform [0] Origin_Y = geotransform [3] ] Cell_Size = geotransform [1] CRS = dem.GetProjection () # satır və sütunda lat / long # Koordinat istifadə etdiyiniz üçün CRS-in coğrafi koordinat sistemində olduğundan əmin olun X = giriş ("Giriş uzunluğu koordinatı:") Y = giriş ("Giriş genişliyi koordinatı:") # Bu hüceyrənin sütununu və sətir bazasını X və Y-də təyin etmək üçün bir düsturdur. Anlamaq üçün şəkil çəkməyə çalışın və ya bəlkə də mənim formula col_x = int (((X - Origin_X) / Cell_Size) +1) row_y = int (((Origin_Y - Y) / Cell_Size) +1) # Hüceyrənin hündürlüyü kimi dəyərini əldə edin H = DEM_Value [sıra_y-1] [col_x-1] # niyə 1-ə endirilməlidir? çünki dizinin indeksi 0 çap H-dən başlayır

Ümid edirəm bu faydalı ...