Vairāk

GDAL rastra maiņa ar pitona kļūdu: objektam 'NoneType' nav atribūta 'GetGeoTransform'

GDAL rastra maiņa ar pitona kļūdu: objektam 'NoneType' nav atribūta 'GetGeoTransform'


Mēģinu pārvietot ģeoreferencētu rastru par 0,5 m N un 0,5 m W QGIS, izmantojot pitona konsoli:

no osgeo import gdal # Atvērt lasīšanas / rakstīšanas režīmā rast_src = gdal.Open ('test_raster.tif', 1) # Iegūt afinitātes transformācijas koeficientus gt = rast_src.GetGeoTransform () # Konvertēt kopu uz sarakstu, lai mēs to varētu modificēt gtl = saraksts (gt) gtl [0] - = 0.5 # Pārvietot uz rietumiem 0.5 m gtl [3] + = 0.5 # Pārvietoties uz ziemeļiem 0.5 m # Saglabājiet ģeotransformu rastrā rast_src.SetGeoTransform (tuple (gtl)) rast_src = Nav # ekvivalents saglabāt / aizvērt

Tomēr 7. rindiņa (gt = rast_src.GetGeoTransform ()) met an AttributeError: Objektam 'NoneType' nav atribūta 'GetGeoTransform'. Instalētā GDAL versija ir 1.11.0. Šķiet, ka rastrs ir kārtībā. Tātad, kas ir nepareizi?


Piezīme: šī ir tikai nedaudz izvērsta iepriekšējo komentāru versija.

SkaidrsAtvērt ()zvans neizdevās (neatgriešanās nav).

Tas var notikt vairāku iemeslu dēļ (piemēram, jums nav atļauju lasīt failu operētājsistēmas atļauju, piemēram, ACL, dēļ), taču, kā norādīts komentāros, šajā gadījumā problēma ir tajā direktorijā, kuru jūs domājat atkārtoti strādāt nav tas, kuru jūs faktiski meklējat. Jo īpaši python no QGIS operētājsistēmā Windows ir "ievietots" visur, kur dzīvo binārā versija QGIS.exe (piezīme: Windows lietojumprogrammu izpildlaika direktorijus varat mainīt, ja jums ir administratora tiesības - izveidojiet saīsni un iestatiet "Start in").

Vienkāršākais veids, kā virzīties uz priekšu, ir tikai norādīt visu ceļu:

rast_src = gdal. Atvērts ('C:  temp  raster1.tif', 1)

Ņemiet vērā, ka rakstzīme ir īpaša pitonā, tāpēc, lai izvairītos no tā, jums tas ir jādublē.

Ja jūs nevēlaties norādīt grūti kodētu ceļu, varat to izveidot no vides mainīgā vai no cita avota (neatkarīgi no tā, kāds kods būtu jāuzņemas kā vecāku direktorijs). Tas patiesībā nav specifisks ĢIS.


Šis pats jautājums notika ar mani, un tam nebija nekāda sakara ar ceļa nosaukumu. Es varu atvērt rastru Labi, bet pēc tam es uzzinu, ka manis iepriekš pieejamās metodes vairs nav tur ...


Izmēģiniet konsolē:

gdalinfo yourfile.tif

Ja viss šķiet normāli (ir ģeotransformācija), varat mēģināt pārrakstīt failu argdal_translate.

Man bija līdzīga problēma ar lielu masīvu, un es tam varēju piekļūt ar pitonu, pārrakstot failu šādi:

gdal_translate -co "COMPRESS = LZW" -co "TILED = YES" yourfile.tif newname.tif

Skatīties video: zalktis atkal lien pie manas sievas