Przepraszam, jeśli poniższe pytanie jest nieco głupie, ale jestem BARDZO nowy w tej całej sprawie GIS.
Próbuję przekonwertować niektóre rzutowane obrazy geoTiff na WGS84 przy użyciu gdal w python. Znalazłem post opisujący proces przekształcania punktów w rzutowanych GeoTiff przy użyciu czegoś podobnego do następującego:
from osgeo import osr, gdal
# get the existing coordinate system
ds = gdal.Open('path/to/file')
old_cs= osr.SpatialReference()
old_cs.ImportFromWkt(ds.GetProjectionRef())
# create the new coordinate system
wgs84_wkt = """
GEOGCS["WGS 84",
DATUM["WGS_1984",
SPHEROID["WGS 84",6378137,298.257223563,
AUTHORITY["EPSG","7030"]],
AUTHORITY["EPSG","6326"]],
PRIMEM["Greenwich",0,
AUTHORITY["EPSG","8901"]],
UNIT["degree",0.01745329251994328,
AUTHORITY["EPSG","9122"]],
AUTHORITY["EPSG","4326"]]"""
new_cs = osr.SpatialReference()
new_cs .ImportFromWkt(wgs84_wkt)
# create a transform object to convert between coordinate systems
transform = osr.CoordinateTransformation(old_cs,new_cs)
#get the point to transform, pixel (0,0) in this case
width = ds.RasterXSize
height = ds.RasterYSize
gt = ds.GetGeoTransform()
minx = gt[0]
miny = gt[3] + width*gt[4] + height*gt[5]
#get the coordinates in lat long
latlong = transform.TransformPoint(x,y)
Moje pytanie brzmi: czy chcę przekonwertować te punkty i utworzyć nowy plik GeoTiff WGS84? Czy istnieje funkcja, która wykona zadanie takie jak 1 krok?
Dzięki!
źródło
Jak powiedział mdsumner, o wiele łatwiej jest korzystać z wiersza poleceń niż powiązania Pythona, chyba że chcesz wykonywać bardzo złożone zadania.
Jeśli więc lubisz Pythona, tak jak ja, możesz uruchomić narzędzie wiersza poleceń za pomocą:
lub iteruj po liście plików:
Nawet narzędzia wieloprocesorowe wykorzystują pełną moc maszyny do wykonywania dużych zadań.
źródło
os.sys
jest wbudowanym modułem; chceszos.system
polecenia