Necesito escribir una secuencia de comandos de interpolación para QGIS. Quiero que el uso de TINInterpolation método de Interpolación plugin. He encontrado clase en la documentación de la API, pero no sé cómo escribir QList objeto con atributos para la interpolación. Este es el constructor de QGIS API.
QgsTINInterpolator (const QList< LayerData > &inputData, TIN_INTERPOLATION interpolation=Linear, bool showProgressDialog=false)
No puedo encontrar cualquier fragmento de código sólo esta documentación de la API - https://qgis.org/api/classQgsTINInterpolator.html#a81c71e2be210a4b082ea807b0626a1bd
y QList la documentación de la Api de Qt - http://doc.qt.io/qt-4.8/qlist.html#details
Traté de encontrar cualquier otro código con QList clase, pero sólo he encontrado QgsVectorLayer y QgsRasterLayer cada vez.
En la documentación no se encuentra disponible en Python bindings significa que no los puedo usar con python o ¿qué significa? Tengo este de aquí: https://qgis.org/api/classQgsInterpolator.html
Voy a ser muy feliz para cualquier ayuda.
EDITAR
En QgsInterpolator.LayerData no entiendo por qué interpolationAttribute es un entero. Es el número de columna? En la Interpolación plugin de qgis es un nombre de columna. Es simplemente la siguiente pregunta para la discusión. Todavía no sé cómo creta LayerData estructura.
Tengo este error:
Traceback (la mayoría de llamada reciente pasado): File "", line 1, in TypeError: argumentos no coinciden con ninguna sobrecarga de la llamada: QgsInterpolator.LayerData(): demasiados argumentos QgsInterpolator.LayerData(QgsInterpolator.LayerData): argumento 1 ha inesperado de tipo 'int'
cuando trató de esta línea de código:
lay = QgsInterpolator.LayerData(8, "BREAK_LINES", layer2, True)
Quiero interpolar vector de datos de la línea, a continuación, utilizar Contorno y seleccione un único valor de características, todo esto en el script. Empecé a escribir el código de la consola, pero este fue el primer problema que tengo. Yo nunca use python programación de objeto sólo de procedimiento. Fundamentos de la programación del objeto debería tener de Java pero no entiendo esa documentación. No sé qué significa estructura de referencia en python y cómo se debe utilizar.
EDITAR
layer = QgsVectorLayer(pathToFile, 'test', "ogr")
QgsMapLayerRegistry.instance().addMapLayer(layer)
ld1 = qgis.analysis.QgsInterpolator.LayerData()
ld1.vectorLayer=layer #variable with vector layer
ld1.zCoordInterpolation=False
ld1.interpolationAttribute=7 #number of column with elevation value
ld1.mInputType=2 #BREAK_LINES
...next two layers and LayerData object (ld2 and ld3)...
#TIN Interpolation
itp=qgis.analysis.QgsTINInterpolator([ld1, ld2, ld3])
rect = layer.extent()
res = 10
ncol = int( ( rect.xMaximum() - rect.xMinimum() ) / res )
test = qgis.analysis.QgsGridFileWriter(itp,pathToSave,rect,ncol,ncol,res,res)
test.writeFile(False)
Hasta esta parte lo comprendo, pero cuando empiezo a QgsTINInterpolator debe tomar un largo tiempo para la ejecución, pero es demasiado rápido. Es raro...
El siguiente código no entiendo, en concreto lo que es zi variable? (línea de 693 en github)