Perché ottengo l'area corretta e l'area di intersezione quando uso una proiezione errata?


11

Devo calcolare le aree e le aree di intersezione per i poligoni (alcuni oggetti geografici reali come lago, città, paese, ecc.). Poligoni situati in California, Nuova Zelanda, Russia.Anadyr, Svezia

Tutti i poligoni sono in WGS84.

Cosa ho fatto usando l'API java di GeoTool:

  1. Proiettare tutti i poligoni usando EPSG: 3488 , EPSG: NAD83 (NSRS2007) / California Albers e aree calcolate e aree di sovrapposizione.
  2. Ha fatto lo stesso usando World_Mollweide e World_Eckert_IV
  3. Scelto " proiezioni specifiche locali " per i poligoni della California, della Nuova Zelanda, ecc

Suppongo che il n. 3 sia il risultato più accurato, poiché scelgo la proiezione che copre l'area del poligono

Risultato:

'Il n. 2 ha mostrato il risultato peggiore rispetto al n. 3

'La differenza tra le aree n. 1 e n. 3 e le aree di intersezione è inferiore allo 0,1%

Perché? Scelgo la proiezione EPSG: 3488 (California) assolutamente sbagliata per i poligoni dalla Svezia e ottengo praticamente le stesse aree e aree di intersezione?

UPD: Sembra che non abbia spiegato correttamente la mia confusione. Ecco un esempio di output con spiegazione

#area_from_new_zealand_1
EPSG_27200 area[11733479] CRS[World_Mollweide] area[11736023] diff[2544] [0.0%]
EPSG_27200 area[11733479] CRS[World_Eckert_IV] area[11736033] diff[2554] [0.0%] 
EPSG_27200 area[11733479] CRS[EPSG:NAD83(NSRS2007) / California Albers] area[11736034] diff[2555] [0.0%] 

#area_from_new_zealand_2
EPSG_27200 area[2952725]  CRS[World_Mollweide] area[2953281] diff[556] [0.0%] 
EPSG_27200 area[2952725]  CRS[World_Eckert_IV] area[2953342] diff[617] [0.0%] 
EPSG_27200 area[2952725]  CRS[EPSG:NAD83(NSRS2007) / California Albers] area[2953467] diff[743] [0.0%] 

#intersection_area_between_two_new_zealand_areas
EPSG_27200 intersection area[1001857] CRS[World_Mollweide]                          area[1002082] diff[225] [0.0%] 
EPSG_27200 intersection area[1001857] CRS[World_Eckert_IV]                          area[1002082] diff[225] [0.0%] 
EPSG_27200 intersection area[1001857] CRS[EPSG:NAD83(NSRS2007) / California Albers] area[1002096] diff[239] [0.0%] 


#area_from_alaska_1
EPSG_3338 area[56278347]    CRS[World_Mollweide] area[56041510] diff[236837] [0.4%] 
EPSG_3338 area[56278347]    CRS[World_Eckert_IV] area[56041585] diff[236763] [0.4%] 
EPSG_3338 area[56278347]    CRS[EPSG:NAD83(NSRS2007) / California Albers] area[56278426] diff[79] [0.0%] 

#area_from_alaska_2
EPSG_3338 area[17564799282] CRS[World_Mollweide] area[17486015889] diff[78783393] [0.4%] 
EPSG_3338 area[17564799282] CRS[World_Eckert_IV] area[17486869816] diff[77929466] [0.4%]
EPSG_3338 area[17564799282] CRS[EPSG:NAD83(NSRS2007) / California Albers] area[17566197286] diff[1398004] [0.0%] 

 #intersection_area_between_two_alaska_areas 
EPSG_3338 intersection area[43808167] CRS[World_Mollweide] area[45066901] diff[1258734] [2.8%] 
EPSG_3338 intersection area[43808167] CRS[World_Eckert_IV] area[45163183] diff[1355016] [3.0%] 
EPSG_3338 intersection area[43808167] CRS[EPSG:NAD83(NSRS2007) / California Albers] area[43885182] diff[77015] [0.2%]

La mia confusione è: EPSG: 3488 progettato per essere utilizzato in California

Scelgo EPSG "errato" della proiezione : 3488 per le aree dell'Alaska, della Nuova Zelanda e vedo che i calcoli risultanti non differiscono "in modo significativo" dalle proiezioni corrette. EPSG: 3488 offre persino prestazioni migliori rispetto a Mollweide, proiezioni Eckert_IV progettate per essere utilizzate in tutto il mondo.


Ho anche scoperto che non c'è quasi nessuna differenza osservabile tra queste due proiezioni, tuttavia la differenza esiste ancora. In ArcGIS, non è possibile creare un "set di dati di funzionalità" a meno che i dati non siano nella stessa proiezione anche con una differenza così piccola tra WGS84 e NAD83. La seguente pagina web mi è stata molto istruttiva e spero che anche tu lo trovi utile. differenzabetween.net/technology/… Avrei messo questo come un commento ma non ho 50 rep :(
Justin Q

a cosa stai confrontando i risultati?
Ian Turton

@iant, vedere la domanda aggiornata. Ho aggiunto l'output di confronto.
Capacytron,

Potresti provare le proiezioni AUTO (UTM centrato su un punto fornito dall'utente) - costruisci CRS come String code = "AUTO: 42001," + x + "," + y; // System.out.println (codice); CoordinateReferenceSystem auto = CRS.decode (codice);
Ian Turton

Risposte:


9

"EPSG: 3488, EPSG: NAD83 (NSRS2007) / California Albers" è una proiezione di uguale area. Si basa sulla Conica di Albers, definita per l'emisfero settentrionale. Poiché la Svezia rientra nella sua gamma di definizione, è la stessa area in Svezia. Ciò significa che (fino all'errore di arrotondamento in virgola mobile) fornirà aree assolutamente corrette.

Né il Mollweide né l' Eckert sono esattamente uguali, ma (come gentilmente M. Kennedy sottolinea in un commento) lo sono approssimativamente. Le distorsioni che introducono saranno paragonabili alle differenze tra la sfera e l'ellissoide, che sono limitate a circa una parte su 300 (0,3%).


1
Bill, Eckert IV e Mollweide sono proiezioni di area uguale, ma hanno solo algoritmi sferici.
mkennedy,

1
@mkennedy Oops - Avrei dovuto controllare. Grazie per la correzione, Melita. Risolverò quel commento.
whuber

1
@mkennedy quindi ESRI: 53009 ed ESRI: 54009 sono effettivamente identici? Vedo che Snyder non fornisce formule sull'ellispoide, quindi che senso hanno quelle proiezioni World_xxx di ESRI basate su WGS84?
AndreJ,

1
Esri: 53009 (e le altre voci 53xxx) utilizzano un GeoCRS basato su sfera con R = 6371000,0 m. La gamma Esri: 54xxx utilizza un geoCRS WGS84, quindi il raggio effettivo utilizzato è l'asse maggiore, 6378137.0. Entrambi sono stati aggiunti proprio come definizioni di test / campione.
mkennedy,

2
Il Polo Sud è a decine di migliaia di chilometri dalla Svezia: è in Antartide. Il polo nord si trova a poche migliaia di chilometri dalla Svezia. Ma non importa: se si utilizza una proiezione di area uguale ed è in grado di proiettare una regione di cui si desidera calcolare l'area, allora calcolerà l'area correttamente (per l'origine su cui si basa). Alcune proiezioni di area uguale sono in grado di proiettare il mondo intero ad eccezione di un singolo punto (che dipende dalla proiezione).
whuber

1

L'affermazione di @ whuber secondo cui una proiezione di uguale area "darà aree assolutamente corrette" viene fornita con un asterisco, in particolare supponendo che i bordi del poligono siano linee rette in detta proiezione . Questa è spesso una buona approssimazione, in particolare se i bordi sono corti; ma raramente è rigorosamente vero.

Se, d'altro canto, i bordi del poligono sono geodetici o rombi, è possibile utilizzare altre tecniche per determinare l'area precisa da arrotondare. Il mio planimetro online li implementa. Provaci.


Ciao! Grazie per tutto l'input. Quindi vuoi potrebbe essere il riassunto? EPSG: 3488 utilizza la proiezione di area uguale di Albers, ecco perché calcola correttamente le aree di tutto il mondo, anche sul polo sud?
Capacytron,

Probabilmente l'area uguale di Albers fornirà un risultato abbastanza decente per la tua applicazione. Tuttavia, l'uso cieco di questa proiezione per calcolare l'area dell'Antartide (che circonda il polo) darà un risultato senza senso. Quindi, per un uso generale, consiglierei di calcolare l'area geodetica in modo da non doversi preoccupare dei limiti di ogni particolare proiezione dell'area uguale.
Cffk,

Grazie per la risposta. Purtroppo, abbiamo bisogno di un'area quadrata in metri.
Capacytron,

Lo strumento Planimetro ti fornisce l'area in metri quadrati.
Cffk,

La stessa funzionalità è disponibile come pacchetto Java, Geographiclib-Java . La documentazione include il codice per calcolare l'area di un poligono specificato come un insieme di punti di latitudine / longitudine con il risultato fornito in metri quadrati.
Cffk,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.