2009-02-10 19 views
11

Tengo un mapa de elevación almacenado como un ráster. Me gustaría ajustar una curva suave de "vector" a los contornos de elevación constante. En mi aplicación, los datos son en realidad elevaciones geográficas, pero el problema podría generalizarse a cualquier función de dos variables.¿Cómo aproximar un contorno vectorial desde un ráster de elevación?

Puedo producir otro ráster con líneas de contorno suavizadas y usarlo como entrada para el proceso de ajuste de vector, si eso ayuda.

This question es similar, pero estoy buscando una biblioteca gratuita que pueda usar en mi aplicación Java, o una explicación del algoritmo que yo (un no matemático) puedo implementar. Además, en mi caso, ya encontré todos los "bordes" que me importan — Solo necesito vectorizarlos.

Another question toca la mía, pero el cartel nunca volvió a explicar cómo implementó el paso final, que es la parte que me falta.

+2

Desafortunadamente googlear su mayoría termina con las páginas sobre cómo hacer esto en ArcGIS o Mapview. –

Respuesta

2

Es probable que desee ajustarlo a las curvas de bezier cerradas (curvas).

Hay un page with a Java applet que hace tal ajuste. Eche un vistazo a su PSegment.java (sin comentarios, bleh)

Si eso no hace el trabajo lo suficientemente bien, Fitting B-Spline Curves to Point Clouds by Squared Distance Minimization debe ser excesivo para la tarea.

Para obtener más información, Google (Académico) busca cosas como "ajuste b-spline" y "curvatura bezier cerrada" debería ayudar.

1

Yo uso GDAL. Y en mi opinión, probablemente no desee querer crear Bézier splines, lo que agrega complejidad. Los segmentos de línea cortos son lo suficientemente buenos.

El único problema es que tendría que crear los contornos en el momento de preparación de los datos, no en su aplicación Java.

Aquí está un mapa con algunos contornos creados a partir de USGS height data utilizando GDAL:

enter image description here

+0

¿Puede proporcionar un ejemplo o un enlace para los contornos en GDAL? Por favor, –

+0

Consulte http://www.gdal.org/gdal_contour.html. Desafortunadamente no tengo mis ejemplos de hace tres años y medio. –

Cuestiones relacionadas