7 votos

Localización del punto latitud-longitud en un mapa de pistas con transformaciones matriciales

Estoy tratando de puntos de la trama de una determinada latitud y longitud en esta imagen de un Suizo paisaje montañoso.

http://skimap.org/data/989/60/1218033025.jpg

Lo que yo hago es que tengo algunas 54 ubicación conocida-puntos trazados en esta imagen (no visible en la imagen enlazada), que es una pista mapa, y es, por tanto, la impresión de un artista del paisaje. Me enteré de la latitud-longitud y altura sobre el nivel del mar para estos 54 puntos conocidos. Abrí la pista mapa en el GIMP, y se representan el 54 puntos, mientras que al mismo tiempo la lectura de sus coordenadas en los puntos, en la pista-mapa. Así, he coordenadas x-y (lat-long) y la coordenada z (altura sobre el nivel del mar) para todos aquellos que 54 puntos (lo que es un 3d sistema de coordenadas que tengo), y también me han coordenadas X-Y de esos lugares en mi pista-mapa (2d sistema de coordenadas), y supongo que un Z=1 para todos los puntos.

Para localizar una determinada lat-long en mi pista-mapa(tengo las coordenadas de este lugar, es decir, el lat-long, pero no de elevación), necesito calcular su X-Y en la pista-mapa. Mi enfoque es, que tengo que calcular las distancias entre este punto que se ubica y los 54 puntos conocidos , y luego ordenarlos en orden ascendente. Los dos primeros puntos en esta orden serán los puntos más próximos a la que queremos localizar. Ahora, me parece a mi 3er punto conocido, y por eso, yo bucle sobre el resto de los puntos, para obtener la más próxima posible al punto tal que este punto forma un triángulo con los dos primeros puntos más cercanos con el punto que se encuentra a caer en el interior del triángulo formado. Ahora, tengo conocidos tres puntos formando un triángulo decir que el triángulo ABC. Para estos puntos conocidos, tengo un triángulo a'B'C' en la pista del mapa, y el punto a se encuentra se encuentra en el último. Me imagino a cabo la transformación de la matriz que cuando se multiplica por la matriz de 3X3 de los tres puntos conocidos(en esta matriz de 3X3, cada fila corresponde a un punto, con los valores de la columna de x,y y z en 3d scape) resultados en una matriz de 3X3 de esos puntos en la pista-mapa. Me multiplicar esta transformación de la matriz calculada con una nueva matriz de 3X3 para los tres puntos, el primero es el punto a se encuentra, y los dos restantes son los dos últimos puntos conocidos en la primera matriz de 3X3. De esta manera, los dos primeros elementos de mi matriz resultante son los valores de X e y para que el punto a se encuentra, y proceder por delante para sacar el punto de la pista-mapa. Es este enfoque correcto con respecto a la manera en que yo estoy usando la transformación de la matriz? Gracias! Yo realmente apreciaría si cualquier enfoques alternativos sugeridos son así!

4voto

cjstehno Puntos 131

Si la imagen está en el menos realista, y parece ser, entonces representa una proyección de una parte de la Euclídea espacio de tres en una porción de dos-espacio. No podemos esperar que esta proyección tener una buena fórmula matemática, porque es probable que el artista ha introducido irrregular pequeñas distorsiones, pero podemos esperar que su fórmula a algo aproximado fórmulas para tales proyecciones. Estas fórmulas tienden a ser lineales o proyectiva, y también tienden a ser más sencillo cuando coordenadas Cartesianas se utilizan.

Por lo tanto, lo que usted debe considerar hacer al principio es este:

  1. Convertir todos (lat, lon, elevación) de los valores geocéntrica (x, y, z) de los valores.

  2. Asociado con cada (x, y, z) el valor es un par de coordenadas de la imagen (u, v). Probablemente perder poco a la estimación de u y v de forma independiente el uno del otro, lo que reduce el problema a uno de interpolación de muestras de una función escalar. Las consideraciones anteriores sugieren que usted busca de la interpolación de funciones que localmente son de la forma

    u = a x + b y + c z + d
    

    (lineal) o incluso

    u = (a x + b y + c z + d) / (a' x + b' y + c' z + 1)
    

    (proyectiva) y de manera similar para v. Esto reduce el problema a uno de la realización de una interpolación en tres dimensiones, que es lo suficientemente rutina para darle acceso a un gran conjunto de métodos y software.

    Alternativamente, usted podría considerar la posibilidad de la triangulación de los (x,y,z) de los puntos y de la interpolación de sus asociados (u,v) por separado los valores a través de los triángulos; incluso una interpolación lineal a través de cada cara triangular podría hacer un buen trabajo. Este es un 3D analógico de lo ESRI 3D Analyst en dos dimensiones con Latas.

Tenga en cuenta, sin embargo, que a menos que usted tiene la altura de un lugar determinado, usted no puede esperar para trazar con precisión en este mapa: el cambio de la elevación de crear una casi vertical de la línea en el mapa, donde su ubicación podría ser trazado prácticamente en cualquier lugar a lo largo de esta línea. Con una considerable cantidad de trabajo que usted puede resolver este problema por los puntos en el terreno por primera digitalización de la evidente discontinuidades en la inversa de la proyección, es decir, en representación de los contornos de las cadenas de montañas como polilíneas--y la construcción de un local inversa interpolador (respetando estas breaklines) que asocia a cada (u,v) en la imagen de una posición (x,y,z) en el mundo. Usted podría aprovechar esto para identificar qué punto a lo largo de cualquier línea vertical tiene un (lat,lon) cerca de la una con el que comenzó.

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