Realizzare una mappa di flusso radiale che mostra linee curve su brevi distanze (20 km) usando ArcGIS per desktop?


10

Esri ha fornito istruzioni su come realizzare una mappa del flusso radiale, ma penso che le linee curve saranno prodotte solo su una lunga distanza, come metà del globo.

Per brevi distanze (20 km) una linea geodetica probabilmente sembrerà ancora piuttosto dritta. Per continuare a utilizzare questo processo per una mappa di flusso radiale su brevi distanze, quindi, ho pensato che potremmo modificare le impostazioni di riferimento in modo che la terra sia più piccola, quindi otterrai una bella linea curva per una piccola distanza. Qualcuno sa come farlo?

In alternativa, esiste un altro strumento in ArcGIS Desktop 10.0 da utilizzare per creare linee curve? Ho 90 punti che devo collegare fino a 54 punti, sarebbe bello automatizzarlo piuttosto che dover tracciare le linee manualmente.


2
La tua domanda è stata posta all'indirizzo gis.stackexchange.com/questions/5204/… in un contesto non ArcGIS. È possibile che le risposte siano di interesse.
whuber

1
Ho avuto un'idea diversa da quella di whuber, ma la sua potrebbe essere meglio dati i tuoi obiettivi. Ho semplicemente pensato che si potesse aggiungere una quantità arbitraria di piega nell'arco, simile a quanto si fa nei diagrammi ad arco . Si potrebbe quindi cambiare la direzione dell'apice a seconda della direzione del flusso. In sostanza, il flusso di lavoro sarebbe lo stesso per i grandi cerchi, spezzando la stringa di linea in molti segmenti rettilinei più piccoli. La curva arbitraria potrebbe adattarsi a qualsiasi proiezione locale.
Andy W,

@AndyW, il tuo suggerimento mi sembra più utile (anche se senza offesa per whuber, che offre ottimi suggerimenti per più utenti capapoli). Non sono in grado di comprendere o attuare il suggerimento di Whuber. Sto cercando una semplice soluzione "out of the box", preferibilmente un'estensione ArcGIS. Ho guardato i diagrammi ad arco, ci sono alcuni esempi sorprendenti lì. Non sto vedendo una soluzione lì per una semplice mappa statica che mostra una relazione da molte a molte (ma di solito da una a molte) tra, nel mio caso, i siti di sfratto e i siti di ricollocazione.
ndthl

Risposte:


5

Ecco un'illustrazione del flusso di lavoro che ho citato nel commento sopra, e anche se non conosco alcuna semplice routine pre-inscatolata per farlo, ho allegato un foglio di calcolo Excel che si può importare un insieme di coordinate origine-destinazione e il foglio crea quindi un insieme o coordinate di linea circolare (foglio di calcolo qui ). Ha formule impostate, quindi è abbastanza facile importare nuove coordinate OD ed estendere le formule per compilare i risultati, ma esaminerò la logica del processo in modo più esplicito, tuttavia, e altri possono dare consigli su come scriverlo interamente all'interno ArcMap (o qualsiasi altra cosa).

In breve, penso che questo sia ragionevole per visualizzare i dati OD principalmente per lo stesso motivo per cui sono popolari le grandi linee circolari, che forniscono una maggiore distinzione visiva tra le linee. L'approccio che suggerisco ha anche un vantaggio rispetto alle grandi linee circolari, in quanto la direzione del flusso è codificata nel semicerchio. In questa altra risposta sul sito fornisco una panoramica più generale delle tecniche di visualizzazione per la mappatura del flusso e molte di quelle stesse tecniche possono essere applicate oltre a creare archi come questo.

Quindi, per dettagliare come si disegnano le linee come io sono un suggerimento, essenzialmente ho solo 3 passaggi per il processo, 1) trovare l'orientamento del flusso, 2) trovare il punto medio e la distanza del flusso, 3) trattare il punto medio come centro di un cerchio, quindi disegna l'arco (un semicerchio dall'origine alla destinazione). Per essere chiari, sto iniziando con una coppia di coordinate di origine proiettate (x1,y1)e coordinate di destinazione (x2,y2).

Quindi 1) trova l'orientamento del flusso. Uno prima usa la formula ATAN((y2 - y1)/(x2 - x1))e poi a seconda della direzione assegna un orientamento a seconda che la direzione sia verso est o verso ovest. Un esempio di pseudocodice di seguito (assegno punti OD che hanno entrambi alle stesse coordinate un orientamento pari a zero). Qui la variabile or_radè intesa come abbreviazione di "orientamento in radianti" e si piriferisce al valore di pi.

#tan_or = ATAN((y2 - y1)/(x2 - x1)).
Do If x2 = x1 and y1 <= y2. 
    compute or_rad = 0.
Else if x2 = x1 and y1 > y2.
    compute or_rad = pi.
Else if x1 > x2.
    compute or_rad = 270/180*pi - #tan_or.
Else if x1 < x2.
    compute or_rad = 90/180*pi - #tan_or.
End If.

2) Trova il punto medio e la distanza del flusso. Questo è molto semplice, per un solo set di coordinate accoppiate sarà il punto medio in coordinate (x, y) (x1+x2/2,y1+y2/2). Quindi definiamo mid_x = (x1 + x2)/2e mid_y = (y1 + y2)/2per la parte successiva. La distanza usando il teoria del pitagoro è semplicemente distance = SQRT((x1 - x2)^2 + (y1 - y2)^2).

3) Quindi, date queste informazioni, disegna il cerchio dato su un numero predefinito di gradi e un raggio (che è metà della distanza tra i due punti). Ad esempio, supponiamo di iniziare con un insieme di coppie di coordinate OD in (1,3):(3,2). L'orientamento in gradi sarà ~ 116 (e in radianti ~ 2), il punto medio x, y sarà (2,2.5)e la distanza tra i due punti è di circa 2,2.

Diciamo quindi che vogliamo disegnare il semicerchio di 180 gradi. Nel codice pseduo (usando le variabili che ho già definito) le iterazioni avranno un aspetto simile;

for i in (0 to 180 degrees) 
    rad_i = i/180*pi. /*converts i from degrees to radians
    step_or = pi - rad_i /*for clarity, this makes the circle go from origin to destination
    radius = distance/2
    Arc_X = mid_x + sin(or_rad - step_or)*radius.
    Arc_Y = mid_y + cos(or_rad - step_or)*radius.

Di seguito è inserito un diagramma delle coordinate originali che ho specificato sopra. Iniziare da zero e terminare a 180 si assicura che i punti essere e fine siano nelle stesse posizioni. La regolazione del loop per avere più passaggi (arco più dettagliato) o meno (arco meno dettagliato) dovrebbe essere abbastanza ovvia.

inserisci qui la descrizione dell'immagine

Da notare, altri thread sul sito discutono sulla creazione di linee da dati puntuali (vedere il tag di della ). Ho un esempio nel foglio di calcolo allegato xls e ho utilizzato lo strumento arcmap ET Geo-wizards per convertire le coordinate del foglio di calcolo in linee di file di forma. Gli archi nei dati di esempio nel foglio di calcolo allegato si presentano in questo modo;

inserisci qui la descrizione dell'immagine

Un aggiornamento semplice ma potenzialmente utile a questa configurazione attuale sarebbe quello di aggiornare le formule per consentire una quantità pre-specificata di eccentricità in arco, anche se finora non sono stato del tutto sicuro di come farlo nei miei pochi tentativi. Attendo con ansia suggerimenti e feedback dalla community qui sui miei consigli.


1
questa è una risposta davvero fantastica! anche se non capisco come programmare, penso di avere qualcosa di buono da discutere che posso discutere con un amico. sono a conoscenza dello strumento et geowizards per unire due punti con una linea retta - sono interessato solo alle linee curve per scopi cartografici.
ndthl,
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.