Estou tentando ajustar um shapefile usando a transformação de spline ogr2ogr com comandos cmd como:
C:\OSGeo4W64\bin\ogr2ogr.exe -f "ESRI Shapefile" C:\path\output.shp -tps --optfile C:\path\gcp.txt C:\path\input.shp
Eu tenho mais de 1000 pontos de controle (então eles estão em um arquivo separado ). E eu tenho problemas estranhos com a precisão desse método. Eu já vi nessa pergunta que o método spline ogr2org não é realmente exato. Mas com o meu número de GCP e a extensão do meu conjunto de dados, vejo que a precisão diminui drasticamente de norte a sul. Como isso:
No norte, o método é quase exato (erro de 0,001 m), depois perde suavemente a precisão e no sul cria um erro de cerca de 60 m.
Calculei o RMSE para cada GCP e o plotei em relação às coordenadas e ao número de identificação do ponto de controle (eu estava criando o GCP começando principalmente do norte). E eu tenho:
Tentei encontrar e ler o código fonte do gdal (encontrei os módulos gdal_tps , thinplatespline e ogr2ogr_lib ), mas não conheço essa linguagem (C ++?) E não entendo como o método funciona. A ordem dos polinômios 1, 2 e 3 de ogr2ogr está funcionando bem (eles não são métodos exatos, mas o erro não está progredindo).
Então, por que a precisão da spline diminui logaritmicamente, dependendo da coordenada Y? (Para a coordenada X, vejo saltos com precisão a cada 16000 m). Como isso é possível? Como esse método de ajuste funciona? Como posso resolver este problema? (Eu tenho o Windows 7, 64 bits)