Creare buffer in metri?


15

Sono molto nuovo nel mondo GIS, quindi il mio problema potrebbe essere molto stupido, ma ci proverò comunque.

Obbiettivo

Dato un elenco di coordinate in longitudine / latitudine, memorizzate come .csvfile, voglio creare un buffer con distanza di xkm attorno a quelle coordinate. (Nel caso in cui ciò sia pertinente, queste coordinate sono posizioni delle società nel set di dati SCCS . Queste società si disperdono in tutto il mondo.)

Problema

Sono solo in grado di creare buffer con distanza in gradi radiali, ma voglio farli in (chilo) metri. Sono a conoscenza delle seguenti domande e risposte, ma seguire quanto suggerito non sembra risolvere il mio problema:

Quello che ho provato ...

  1. Inizio QGIS (v2.4) e Add delimited text layer
  2. scegli il mio .csvfile e i campi x / y, fai clic suOK
  3. seleziona WGS 84come mio CRS (anche provato NAD83ma non ha fatto differenza), fai clic suOK
  4. fare clic con il tasto destro sul layer e selezionare Save As..., nella finestra di dialogo, selezionare quanto segue e fare clic OK: inserisci qui la descrizione dell'immagine
  5. aggiungi sccs_meter.shpcome layer al progetto corrente
  6. Selezionare Vector> Geoprocessing Tools> Buffers> Set di buffer come 10

Il risultato è un buffer con un raggio di circa 1068 km, il che suggerisce che la distanza del buffer è di 10 gradi anziché 10 metri.

Cosa ho fatto di sbagliato qui?


1
"Qual è il flusso di lavoro per il buffering in metri / km usando i layer WGS84?" risolve il tuo problema, leggi i commenti. Quando usi lo strumento buffer usa le unità di livello CRS, scegliendo wgs84 userà i gradi. Puoi _meters file, ma non hai modificato il sistema di coordinate.
Alexandre Neto,

@AlexandreNeto: ho letto la risposta di Jake in quella domanda. Intendevi la parte sulla creazione della proiezione equidistante azimutale o la parte sul salvataggio del livello corrente usando un CRS diverso? Ho salvato il mio usando NAD83 (come mostrato nella figura), che dovrebbe essere in metri, ma crea comunque buffer in gradi.
Herr K.

3
NAD83 usa anche i gradi per le unità. Esistono molte proiezioni che utilizzano il dato NAD83 che utilizzano i misuratori, forse invece intendevi sceglierne uno.
Evil Genius,

Risposte:


17

Nel passaggio 4, è necessario modificare il CRS da NAD83 a un'altra proiezione che utilizza i contatori come unità.

Dipende dall'estensione dei tuoi dati quale è la migliore. Sfortunatamente, i tuoi dati si trovano in tutto il mondo, quindi potresti:

  1. Crea un CRS personalizzato usando aeqd (o tmerc) per ognuno e disegna solo quel buffer con esso. In pratica, devi solo creare il buffer una volta e scambiare le informazioni CRS nel file .prj e .qpj. Le coordinate del buffer rispetto al suo centro saranno sempre le stesse.
  2. Raggruppa i dati in base alle zone UTM e usa UTM CRS di quella zona per quei punti.
  3. Simile a UTM, raggruppa i tuoi punti in zone di latitudine (ad esempio ogni 10 gradi) e crea CRS conici 2SP conformi Lambert personalizzati per ogni gruppo. Ciò sarà significativamente più veloce rispetto all'utilizzo di tutte le zone UTM settentrionali e meridionali del mondo.
  4. Usa lo pseudo mercatore EPSG: 3857 per tutti. I buffer sembreranno dei bei cerchi, ma le dimensioni reali si ridurranno e distorceranno più ai poli che vieni.

Ciao, ho una situazione simile (ma con le polilinee posizionate in tutto il wold e che necessitano di un buffer di 50 km su entrambi i lati) e sono un po 'confuso sul perché dovresti usare una delle migliori opzioni se puoi usare la quarta ( che sembra il più semplice). È solo perché non mostrerà chiaramente la distorsione che ti potrebbe piacere vedere, nonostante abbia dato il risultato accurato? Grazie! :)
Amroco,

@Amroco EPSG: 3857 dovrebbe essere evitato se dovrebbe essere esattamente ad una certa distanza, e tu sei lontano dall'equatore.
AndreJ,

2

Modo rapido e sporco: utilizzare una distanza di buffer di 0,01 ° per km. Questi sono i gradi medi per km a 37 ° lat. e distorce l'estensione del buffer NS ed EW. Ma potrebbe essere abbastanza preciso per il tuo scopo.


ciao, sai quanto è grande la distorsione all'equ. e i poli?
Amroco,

Supponendo una sfera perfetta (non geoide): Equatore: 1 ° lat = ~ 111111 m, 1 ° lungo = ~ 111133 m, media. = 111122 m Pali: 1 ° lat = ~ 111111 m, 1 ° lungo = 0 m, media. = 55556 m
Flo

1

È possibile controllare il collegamento al sito geospaziale sito di collegamento . Devi consentire Adobe Flash nel tuo browser. Si consiglia Firefox.

Come programmatore, per creare un buffer di un punto puoi usare geographiclib javascript insieme a js2shapefile. Sarai in grado di creare numerosi punti equi ad una distanza fissa x attorno ad ogni punto del file CSV usando geographiclib, quindi convertirlo in shapefile usando js2shapefile.

Basta controllare il link qui sopra, sarai soddisfatto al cento per cento.


L'aggiunta di alcune informazioni aggiuntive su ciò che spiega il collegamento che risolverà il problema è utile. I collegamenti esterni cambiano / si rompono molto.
MaryBeth,

@MatyBeth Il link sopra menzionato è un piccolo modulo con cui l'utente carica il file .csv che viene letto nel browser usando javascript. Verrà visualizzata l'anteprima di questo file CSV. L'utente deve scegliere la colonna di latitudine e longitudine e il tipo di geometria che desidera scaricare come pointfile del punto, un buffer rettangolare con lunghezza e altezza fornite in metri o un burro circolare con raggio fornito in metri e numero di segmenti. L'utente ha la scelta di salvare il buffer come file shapefile o KML.
GeoSpatialEarth.in
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.