5 votos

Puntos dentro de polígonos en diferentes proyecciones

Tengo un polígono y una clase de característica de punto en alguna proyección. Los puntos están contenidos dentro de los polígonos

Los puntos siempre están dentro de los polígonos sin importar el destino de proyección al que estoy proyectando puntos y polígonos (incluyendo 'desproyectar' a geográfico).


Poniendo visualmente el ejemplo de JGH tengo un gran polígono en WKID =4326 con un punto fuera de él...

WKID 4326

...cuando los proyecto (digamos en 3347 para seguir el ejemplo de JGH) obtengo esto...

enter image description here

donde el punto está ahora dentro del polígono. He utilizado la función "proyecto" de ArcGIS Pro.

Cuando utilizo en el proyecto el parámetro opcional 'Conservar forma' como en la siguiente imagen.

enter image description here

...obtengo algo definitivamente mejor como...

enter image description here

donde (con suerte) el punto queda fuera del polígono. El parámetro 'Preservar forma' hizo lo indicado por J.R. Vértices extra que proporcionan una mejor discretización del polígono en la proyección de destino....de lo contrario todo se reduce a proyectar 4 vértices y dibujar líneas rectas en el espacio de destino para conectarlos (produciendo el indescontable resultado de la segunda imagen de arriba).

¿Lo he entendido bien?

9voto

Braiam Puntos 120

Algunos programas utilizan arcos de círculo máximo para conectar vértices no proyectados (a veces cuando se utiliza un tipo de datos especial, como PostGIS). geography ), mientras que proyectado (o no proyectado utilizando la función geometry ) se conectan mediante líneas rectas.

Esto puede dar lugar a que un punto esté dentro de un polígono expresado como geography pero fuera de ella si se expresa como geometry

El siguiente ejemplo utiliza PostGIS. El polígono llega hasta la latitud 50, el punto está en la latitud 51.

WITH poly AS (select ST_GeomFromText('polygon((0 0, 50 0, 50 50, 0 50, 0 0))',4326) as geom),
  pnt AS (select ST_GeomFromText('point(25 51)',4326) as geom)
SELECT ST_INTERSECTS(poly.geom,pnt.geom) intersect_geometry,
    ST_INTERSECTS(poly.geom::geography,pnt.geom::geography) intersect_geography
FROM poly, pnt;

 intersect_geometry | intersect_geography
--------------------+---------------------
 f                  | t

Editar

Ampliando el comentario de @JR, he aquí un ejemplo al proyectar un polígono enorme a una proyección cónica conforme de Lambert ( 3347 ) y comprobando la intersección de puntos cerca del meridiano central: ¡podemos ver una diferencia de 4 grados de latitud entre ambos!

WITH poly AS (select ST_GeomFromText('polygon((-70 45, -130 45, -130 50, -70 50, -70 45))',4326) as geom),
   pnt AS (select ST_GeomFromText('point(-100 54)',4326) as geom)
SELECT ST_INTERSECTS(poly.geom,pnt.geom) intersect_geometry,
     ST_INTERSECTS(st_transform(poly.geom,3347),st_transform(pnt.geom,3347)) intersect_reproject
FROM poly, pnt;

 intersect_geometry | intersect_reproject
--------------------+---------------------
 f                  | t

2voto

Victor Chaves Puntos 176

Sí. Las proyecciones nunca reproyectarán un punto que estaba dentro de un polígono en una proyección para estar fuera de él en otra - a menos que haya algún tipo de error de precisión. No estoy seguro de cómo se llama esta propiedad en geografía, pero acabo de darme cuenta de que es esencialmente invariancia relativista, que básicamente dice que a medida que el tiempo se dilata para nosotros, y nuestros sistemas de coordenadas se comprimen o estiran, ningún observador en cualquier marco dado estará en desacuerdo en el orden causal de los acontecimientos. Del mismo modo, no importa en qué proyección viva un "observador", nadie discrepará sobre qué puntos están en qué polígonos, aunque discrepen sobre la distancia exacta a la que están los puntos de los bordes de los polígonos, y cosas así.

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