Czy tworzysz radialną mapę przepływu pokazującą zakrzywione linie na krótkich odległościach (20 km) za pomocą ArcGIS na komputery?


10

Esri dostarczył instrukcje, jak stworzyć radialną mapę przepływu, ale myślę, że zakrzywione linie będą wytwarzane tylko na dużą odległość, jak połowa globu.

Na krótkich dystansach (20 km) linia geodezyjna prawdopodobnie nadal będzie wyglądać dość prosto. Aby nadal używać tego procesu do mapowania przepływu promieniowego na krótkich odległościach, pomyślałem, że możemy edytować ustawienia układu odniesienia, aby ziemia była mniejsza, dlatego dostaniesz ładną zakrzywioną linię na niewielką odległość. Czy ktoś wie jak to zrobić?

Czy w ArcGIS Desktop 10.0 jest jeszcze inne narzędzie do tworzenia zakrzywionych linii? Mam 90 punktów, które muszę połączyć z maksymalnie 54 punktami, dobrze byłoby zautomatyzować to niż rysować linie ręcznie.


2
Twoje pytanie zostało zadane na stronie gis.stackexchange.com/questions/5204/... w kontekście innym niż ArcGIS. Odpowiedzi mogą Cię zainteresować.
whuber

1
Miałem inny pomysł niż Whuber, ale lepiej być może, biorąc pod uwagę twoje cele. Po prostu pomyślałem, że można dodać dowolną liczbę zgięć do łuku, podobnie jak na schematach łukowych . Następnie można zmienić kierunek wierzchołka w zależności od kierunku przepływu. Zasadniczo przepływ pracy byłby taki sam dla wielkich kół, rozbijając ciąg linii na wiele mniejszych prostych odcinków. Samo zakręt może pomieścić każdą lokalną projekcję.
Andy W

@AndyW, twoja sugestia brzmi dla mnie bardziej przydatna (choć nie obraża mnie whuber, który robi świetne sugestie dla większej liczby użytkowników). Nie jestem w stanie zrozumieć ani wdrożyć sugestii Whubera. Poszukuję prostego rozwiązania „od razu po wyjęciu z pudełka”, najlepiej rozszerzenia ArcGIS. Spojrzałem na schematy łukowe, jest tam kilka niesamowitych przykładów. Nie widzę rozwiązania dla prostej mapy statycznej pokazującej relację wiele do wielu (ale zwykle jeden do wielu) między, w moim przypadku, miejscami eksmisji i miejscami relokacji.
ndthl

Odpowiedzi:


5

Oto ilustracja przepływu pracy, o którym wspomniałem w powyższym komentarzu i chociaż nie znam żadnej prostej rutyny w puszkach, aby to zrobić, załączyłem arkusz kalkulacyjny programu Excel, za pomocą którego można importować zestaw współrzędnych źródłowych i docelowych arkusz tworzy następnie współrzędne linii lub linii ( tutaj arkusz kalkulacyjny ). Ma skonfigurowane formuły, więc dość łatwo jest zaimportować nowe współrzędne OD i rozszerzyć formuły, aby wypełnić wyniki, ale ja przejdę logikę tego procesu bardziej jednoznacznie, a inni mogą doradzić, jak napisać skrypt w całości ArcMap (lub cokolwiek innego).

Krótko mówiąc, myślę, że jest to uzasadnione do wizualizacji danych OD głównie z tego samego powodu, dla którego popularne są wielkie linie okręgu, które zapewniają bardziej wizualne rozróżnienie między liniami. Podejście, które sugeruję, ma również jedną zaletę w stosunku do wielkich linii okręgu, ponieważ kierunek przepływu jest zakodowany w półokręgu. W tej innej odpowiedzi na stronie przedstawiam bardziej ogólny przegląd technik wizualizacji do mapowania przepływu, a wiele z tych samych technik można zastosować oprócz tworzenia takich łuków.

Tak więc, aby szczegółowo opisać, jak rysuje się linie, tak jak sugeruję, zasadniczo mam tylko 3 kroki dla tego procesu, 1) znajduję orientację przepływu, 2) znajduję punkt środkowy i odległość przepływu, 3) traktuję punkt środkowy jako środek okręgu, a następnie narysuj łuk (półkole od początku do miejsca docelowego). Dla jasności zaczynam od ustawionej pary współrzędnych rzutowania (x1,y1)i współrzędnych docelowych (x2,y2).

Więc 1) znajdź orientację przepływu. Najpierw stosuje się wzór, ATAN((y2 - y1)/(x2 - x1))a następnie w zależności od kierunku przypisuje orientację w zależności od tego, czy kierunek jest wschodni czy zachodni. Przykładowy pseudokod poniżej (przypisuję punkty OD, które mają te same współrzędne, orientację równą zero). W tym przypadku zmienna or_radma być skrótem dla „orientacji w radianach” i piodnosi się do wartości 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) Znajdź punkt środkowy i odległość przepływu. Jest to bardzo proste, dla tylko jednego zestawu sparowanych współrzędnych środkowym punktem współrzędnych (x, y) będzie (x1+x2/2,y1+y2/2). Zdefiniujmy więc mid_x = (x1 + x2)/2i mid_y = (y1 + y2)/2na następną część. Odległość przy użyciu pythagoreum theorum jest po prostu distance = SQRT((x1 - x2)^2 + (y1 - y2)^2).

3) Następnie, biorąc pod uwagę te informacje, narysuj dany okrąg na określonej liczbie stopni i promieniu (który jest połową odległości między dwoma punktami). Załóżmy na przykład, że zaczynamy od zestawu par współrzędnych OD w (1,3):(3,2). Orientacja w stopniach będzie wynosić ~ 116 (w radianach ~ 2), środkowy punkt x, y będzie, (2,2.5)a odległość między dwoma punktami wynosi około 2,2.

Powiedzmy, że chcemy narysować półkole wokół 180 stopni. W pseduo-code (używając zmiennych, które już zdefiniowałem) iteracje będą wyglądały jak;

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.

Wstawiono poniżej schemat oryginalnych współrzędnych, które określiłem powyżej. Zaczynając od zera, a kończąc na 180, upewnia się, że istota i punkty końcowe znajdują się w tych samych lokalizacjach. Dostosowanie pętli w celu uzyskania większej liczby kroków (bardziej szczegółowy łuk) lub mniejszej (mniej szczegółowy łuk) powinno być dość oczywiste.

wprowadź opis zdjęcia tutaj

Należy zauważyć, że inne wątki na stronie omawiają tworzenie linii z danych punktów (patrz znacznik ). Mam przykład w załączonym arkuszu kalkulacyjnym xls i skorzystałem z narzędzia arcmap ET Geo- wizards do konwersji współrzędnych arkusza kalkulacyjnego na linie pliku kształtu. Łuki w przykładowych danych w dołączonym arkuszu kalkulacyjnym wyglądają następująco;

wprowadź opis zdjęcia tutaj

Jedną prostą, ale potencjalnie użyteczną aktualizacją tego obecnego zestawu byłoby zaktualizowanie formuł, aby umożliwić z góry określoną ekscentryczność w łuku, chociaż do tej pory nie byłem pewien, jak to zrobić. Czekam na sugestie i opinie od społeczności tutaj na mojej porady.


1
to naprawdę fantastyczna odpowiedź! chociaż nie rozumiem, jak kodować, myślę, że mam coś dobrego do omówienia z przyjacielem. znam narzędzie et geowizards do łączenia dwóch punktów linią prostą - interesują mnie jedynie linie zakrzywione do celów kartograficznych.
ndthl
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.