Desculpas se a pergunta a seguir é um pouco estúpida, mas eu sou muito MUITO novo nessa coisa toda de GIS.
Estou tentando converter algumas imagens geoTiff projetadas para WGS84 usando gdal em python. Eu encontrei um post que descreve o processo para transformar pontos nos GeoTiffs projetados usando algo semelhante ao seguinte:
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)
Minha pergunta é: se eu quiser converter esses pontos e criar um novo arquivo WGS84 GeoTiff, essa é a melhor maneira de fazer isso? Existe uma função que funcione como tarefa em 1 etapa?
Obrigado!
fonte
Como o mdsumner disse, é muito mais fácil usar a linha de comando do que as ligações python, a menos que você queira executar tarefas muito complexas.
Portanto, se você gosta de python, como eu, execute a ferramenta de linha de comando com:
ou itere através de uma lista de arquivos:
E mesmo as ferramentas de multiprocessamento usam todo o poder da sua máquina para executar grandes tarefas.
fonte
os.sys
é um módulo embutido; você deseja que oos.system
comando