2 votos

Transformar CRS de raster con cadena PROJ4 en pyqgis vía QgsCoordinateTransform()

Intento reproyectar las crs de un raster a otro sistema de coordenadas común, utilizando este código:

crs = QgsCoordinateReferenceSystem()
crs_1 = crs.createFromProj4("+proj=tmerc +lat_0=0 +lon_0=38.03333333333 +k=1 +x_0=2400000 +y_0=-6511057.63 +ellps=krass +towgs84=23.57,-140.95,-79.8,0,0.35,0.79,-0.22 +units=m +no_defs")
crs_2 = crs.createFromProj4("+proj=utm +zone=37 +datum=WGS84 +units=m +no_defs")
QgsCoordinateTransform(crs_1,crs_2,QgsProject.instance())

Pero me da el siguiente error:

Traceback (most recent call last):
  File "[...]\Python37\lib\code.py", line 90, in runcode
    exec(code, self.locals)
  File "<input>", line 1, in <module>
TypeError: QgsCoordinateTransform(): arguments did not match any overloaded call:
  overload 1: too many arguments
  overload 2: argument 1 has unexpected type 'bool'
  overload 3: argument 1 has unexpected type 'bool'
  overload 4: argument 1 has unexpected type 'bool'
  overload 5: argument 1 has unexpected type 'bool'

¿Qué estoy haciendo mal? El uso de números EPSG funciona, pero para mí no es una opción.

(Win 10, QGIS 3.1)

2voto

Mue Puntos 2469

createFromProj4 parece devolver un valor booleano, lo que explicaría el error. Pruebe a sustituirlo por fromProj4 :

crs = QgsCoordinateReferenceSystem()
crs_1 = crs.fromProj4("+proj=tmerc +lat_0=0 +lon_0=38.03333333333 +k=1 +x_0=2400000 +y_0=-6511057.63 +ellps=krass +towgs84=23.57,-140.95,-79.8,0,0.35,0.79,-0.22 +units=m +no_defs")
crs_2 = crs.fromProj4("+proj=utm +zone=37 +datum=WGS84 +units=m +no_defs")
QgsCoordinateTransform(crs_1,crs_2,QgsProject.instance())

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X