Pracowałem nad skryptem Pythona automatyzującym wizualizację danych punktów na żywo. Mam stół z dwiema parami współrzędnych. Chciałbym połączyć te dwa punkty z łukiem koła lub podobnym (parabola ??).
Udało mi się połączyć dwa punkty prostą linią, ale daje mi to nudny obraz.
Jedną z głównych przeszkód jest mój poziom licencji: ArcView.
Czy ktoś ma pojęcie, w jaki sposób mogę wygenerować zestaw punktów reprezentujących ścieżkę linii między tymi dwoma punktami?
Następnie mogę użyć polecenia punktów do polilinii.
arcpy
polyline-creation
flow-map
Piksel
źródło
źródło
Odpowiedzi:
Wydaje się, że najczęstszym problemem związanym z tego rodzaju „mapami przepływu” jest to, że gdy dołączonych jest wiele linii, kolidują one w tak dużym stopniu, że utrudnia to dostrzeżenie nieoczywistego wzorca (gdy uważa się, że występują wzajemne przepływy jeszcze większy zakres). Również długie linie zwykle dominują na grafice, chociaż jest całkiem możliwe, że rozkład przepływów jest przeważnie na krótkich przestrzeniach (na przykład wiele różnych rozkładów między miejscami jest zwykle podobnych do lotów Levyego ). Przypuszczam, że niekoniecznie jest to zła rzecz (długie linie mogą być z natury bardziej interesujące niż krótkie linie dla wielu zjawisk), ale nie sądzę, że chcemy, aby tak powiem, stracić las dla drzew.
Chociaż nie wątpię, że przegapiłem niektóre potencjalne „rozwiązania”, które zostały zaproponowane, postaram się podsumować niektóre sposoby, w jakie ludzie próbowali rozwiązać problem w pracy, z którą się spotkałem.
Zniekształcanie linii
Jeśli przejrzysz niektóre inne wątki na widoku, zobaczysz przykłady tego, jak ludzie poradzili sobie z tym problemem. W szczególności linie są zniekształcone, aby nie nakładały się na siebie ani na inne obiekty na mapie. Odpowiedź Whubera na inne podobne pytanie (wspomniane już w komentarzu) jest tego przykładem. Prezentacja przez niektórych badaczy ze Stanford pokazuje ten sam pomysł (Phan i wsp., 2005). Dziękujemy za tę prezentację dla dslamb za tę odpowiedź w innym wątku (wszystkie odpowiedzi na ten wątek również będą interesujące dla twojego pytania). Szczególnie interesuje mnie to, że jednym z głównych przykładów tego jest stara mapa imigracyjna Minarda, która jest przykładem pożądanego wyniku (około 1864 roku!).
Biorąc pod uwagę konkretny przypadek użycia (niewielka liczba węzłów i linii), wydaje się to wystarczające. Inne „rozwiązania”, które przedstawiam, mają bardziej na celu wizualizację danych z wieloma liniami i wieloma źródłami-miejscami docelowymi (chociaż zakładam, że będą one przydatnymi podsumowaniami dla całej społeczności, więc kontynuuję niezależnie).
Korzystanie z mieszania alfa, koloru i szerokości / wysokości linii
Mapy, które wymieniłem w tym samym wątku, co wcześniej zauważyłem, Reprezentacja przepływów sieciowych są ich przykładami. Znajomi z Facebooka to dobry przykład na dostosowanie poziomu alfa linii, więc potrzeba znacznie więcej przepływów, aby przedstawić ciemniejsze (lub jaśniejsze w tym przypadku) połączenie między dwoma miejscami. Podkreśla to również dłuższe linie, ponieważ zdarzają się one rzadziej. Podobna logika wynika z map Value-by-Alpha dla obszarów wielokątów (Roth i in., 2010), o których wcześniej wspomniano na tym forum .
Druga mapa, którą przedstawiam w tej samej odpowiedzi, używa kolorów i nietradycyjnych łukowych linii perspektywy 3D (Ratti i in., 2010). Autorzy zastosowali kryteria grupowania do grupowania jednorodnych obszarów i kodowania ich kolorem (więc z definicji obszary w kolorze mają bardziej podobne wzory przepływu niż między kolorami). Kryteria klastrowania same w sobie mogą być interesujące w celu zidentyfikowania wzorców w danych, chociaż wydaje się, że prawdopodobnym problemem z tym, jak wspomniał Andrew Gelman , jest to, że mówi ci prawie to, co już wiesz, że zbliża się do siebie zwykle mają więcej połączeń.
Wreszcie, w tej kategorii I obejmują techniki, które ważą linie (podobnie jak mieszanie alfa) przy użyciu szerokości linii lub, w przypadku wysokości linii perspektywy 3D, w celu przeniesienia objętości przepływu. Zobacz stronę na stronie oprogramowania do mapowania przepływu Toblera, aby znaleźć przykłady w 2d (a inny artykuł, o którym wspomniałem, to przykład w 3d z wykorzystaniem wysokości linii). Również na tej stronie Tobler ma bardzo przydatny artykuł opisujący problemy z mapowaniem przepływu i ich historycznym zastosowaniem (Tobler, 1987).
Innym przykładem w 3d jest ta odpowiedź autorstwa mankoffa na tej stronie. Ten post na blogu obrazów socjologicznych pokazuje użyteczny sposób na schemacie blokowym do rozróżnienia wpływów i wypływów (chociaż znowu działa, ponieważ liczba węzłów i stosunkowo mała, a węzły w sieci można rozłożyć na arbitralny sposób ograniczenia nadmiernego plotowania). Te same typy strzałek (i kilka innych używających skrótów) również znajdują się w (Tobler, 1987).
W końcu szerokość i kolor linii tak naprawdę nie rozwiązują problemu nadmiernego drukowania. Łuki w 3d nieco pomagają, chociaż myślę, że przy bardziej skomplikowanych wzorcach przepływu będą miały ograniczoną użyteczność. Mieszanie alfa IMO wydaje się najbardziej przydatne w wielu różnych sytuacjach z tych trzech, ale kolor i szerokość linii można / należy stosować w połączeniu ze wspomnianym powyżej zniekształceniem linii.
Redukcja danych
Grupuję tutaj dwa rodzaje technik: 1) przy użyciu małych wielu map (tj. Wiele map z natury mniejszą liczbą obiektów do wizualizacji, tak że nadmierne drukowanie jest zmniejszone), lub 2) inne reprezentacje graficzne, które nie są liniami, ale reprezentują niektóre przepływy poprzez gęstość lub mapy choropleth. Przykłady można znaleźć w (Corcoran i in., 2009; Rae, 2009; Wood i in., 2010) (dzięki iant w odniesieniu do Rae). Mają one tendencję do zmniejszania ilości prezentowanych informacji wizualnych poprzez prezentację serii małych wielu map (lub po prostu mniejszego obszaru) lub użycie schematu mapowania choropleth do przedstawienia niektórych statystyk (przykładami mogą być liczba wpływów, liczba odpływów , kierunek przepływów, średnia odległość przepływów). Jeśli masz dane na poziomie punktów, możesz reprezentować te statystyki za pomocą map rastrowych gęstości jądra lub agregować je w kwadraty.
Gdy informacja jest zmniejszona w ten sposób, nadmierne drukowanie nie stanowi tak dużego problemu. Bardzo fajnym interaktywnym przykładem online jest mapa migracji magazynu Forbes . Możesz zobaczyć tylko jeden okręg na raz, ale redukcja informacji znacznie ułatwia parsowanie linii (i różnicę między wpływami i wypływami). Niedawny post na blogu poświęconym mapowaniu ESRI również stosuje podobną technikę z małymi wielokrotnościami (wybierają też konkretną projekcję mapy świata, aby mieć „ładnie wyglądające” linie i dobrze wykorzystują kolor, aby dodatkowo podkreślić różne pochodzenie międzynarodowe). W tym przykładzie działa całkiem nieźle, ponieważ miejsce docelowe jest takie samo dla wszystkich przepływów, ale jeśli przepływy mogłyby być wzajemne, prawdopodobnie również by się nie udało.
Korzystanie z innych nie-mapowych reprezentacji przepływów
Inni na tej stronie zasugerowali użycie alternatywnych schematów do rzeczywistej mapy w celu przedstawienia przepływów (po prostu odwzorowanie początków i miejsc docelowych w inny sposób niż ich rzeczywiste położenie geograficzne). Przykładami są albo konkretne wizualizacje (takie jak te stworzone przez Circos ), diagramy łukowe (patrz ten przykład na Protovis, są one również nazywane kriskogramami (Xiao i Chun, 2009)) lub mapy ciepła macierzy ( tutaj jest inny przykład z Strona Protovis). Inną opcją byłoby użycie pewnego rodzaju zautomatyzowanego układu sieci do identyfikowania wzorców w przepływach (takich jak te, które umożliwia Graphviz ). Oprócz Graphviz pojawia się Gephi, biblioteka Pythona NetworkX i niektóre biblioteki R są również popularnymi narzędziami (patrzta odpowiedź na stronie statystyk).
Biblioteki, które cytuję, są całkiem fajne, ponieważ opracowały również interaktywne wizualizacje. Oto przykład w stylu podobnym do grafiki okrągłej (choć nie okrągłej!). Oto kolejna interaktywna wizualizacja wykorzystująca niektóre z wcześniej omówionych technik zniekształceń linii, rozmieszczenie sieci (które wydaje się podobne do okrągłych kartogramów Dorlinga), a także inne przydatne podsumowania statystyczne (oba te przykłady widziałem pierwotnie na blogu estetyki informacji ).
Inne zasoby, które moim zdaniem są użyteczne, to oprogramowanie i artykuły pochodzące z Spatial Data Mining i Visual Analytics Lab . Również popyt podróży przestępstwo modelowania w programie CrimeStat jest delikatne wprowadzenie do stosowanych technik regresji dla tych danych przepływowych. Każde z tych narzędzi może pozwolić ci zidentyfikować interesujące korelacje we wzorcach przepływu z innymi informacjami geograficznymi. Innym miejscem, w którym być może można znaleźć jakąś przydatną inspirację do graficznego wyświetlania danych lub analizy statystycznej, byłby ostatni numer w Journal of Computational and Graphical Statistics, tom 20, wydanie 2, w sprawie analizy statystyk przylotów / odlotów przewoźników komercyjnych w USA w latach 1987–2008 (jeśli jesteś zainteresowany przetwarzaniem dużych zbiorów danych, warto to również zbadać). Wszystkie artykuły są bezpłatne i mają powiązane plakaty z każdym artykułem.
Na koniec dane i medium będą decydować o tym, jak dobrze niektóre z tych technik działają w zmniejszaniu bałaganu wzrokowego, który towarzyszy danych przepływu. Mam jednak nadzieję, że jest to przydatne miejsce do znalezienia pomysłów na rozwiązanie tego problemu wizualizacji. Jeśli dopracujesz swoje pytanie w kwestii tego, co chcesz osiągnąć, inni mogą udzielić przydatnych informacji zwrotnych na temat rzeczywistych implementacji programowych (jeśli coś nie jest jeszcze dostępne).
Cytowania
* uwaga, kiedy mogłem znaleźć, są dołączone linki do niepowiązanych dokumentów pdf
źródło
Jest ładny procedura tutaj , przez naszego własnego Podmroku.
Zasadniczo procedura przebiega następująco: - ponownie rzutuj punkty, między którymi ma znajdować się linia, - narysuj linię prostą między nimi, - podziel tę linię na x liczby kawałków, a na koniec - rzutuj podzieloną linię z powrotem na oryginał występ.
W pewnym sensie przestałem używać Arc, ponieważ kosztuje to pieniądze, ale aby ta procedura zadziałała, nie sądzę, że musisz płacić ESRI dodatkowe łapówki, aby zapewnić ci podstawową funkcjonalność. To znaczy, nie sądzę, że musisz kupować jakieś „rozszerzenia”. Mówię jednak z poprawką, ponieważ nie jestem pewien, czy podział linii jest częścią Spatial Analyst. Być może niektórzy bardziej skłonni do ESRIcally mogą mi pomóc tutaj? :)
źródło
Istnieje artykuł na blogu Esri Mapping Center, który korzysta z narzędzia XY to Line, które jest dostępne z licencją ArcView.
http://blogs.esri.com/Support/blogs/mappingcenter/archive/2011/09/06/Creating-Radial-Flow-Maps-with-ArcGIS.aspx
źródło
Możesz zająć się tworzeniem atrakcyjnych wizualnie polilinii z dwóch punktów na mapie przy użyciu metody wielkiego koła. Sprawdź http://www.esri.com/software/arcgis/defense-solutions/military-analyst.html - analityk wojskowy. Powinieneś mieć to, czego szukasz!
źródło