Извиняюсь, если следующий вопрос несколько глуп, но я только ОЧЕНЬ новичок во всей этой ГИС.
Я пытаюсь преобразовать некоторые проецируемые изображения GeoTiff в WGS84, используя gdal в python. Я нашел сообщение, в котором описывается процесс преобразования точек в проецируемых геотиффах с использованием чего-то похожего на следующее:
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)
У меня вопрос: если я хочу преобразовать эти точки и создать новый файл WGS84 GeoTiff, это лучший способ сделать это? Существует ли функция, которая будет выполнять такие задачи, как задача за 1 шаг?
Благодарность!
источник
Как сказал mdsumner, гораздо проще использовать командную строку, чем привязки python, если вы не хотите выполнять очень сложные задачи.
Итак, если вам нравится python, как и я, вы можете запустить инструмент командной строки с помощью:
или перебрать список файлов:
И даже использовать многопроцессорные инструменты используют всю мощь вашей машины для выполнения больших задач.
источник
os.sys
это встроенный модуль; Вы хотитеos.system
команду