Nieciągłe lub przerywane projekcje map?

21

Czy któreś z obecnych oprogramowania GIS typu open source obsługuje nieciągłe systemy projekcji? Np. Sinusoidalny , dymaxion , motyl itp.? Jeśli nie, to czy są dostępne komercyjne niedrogie urządzenia (niedrogie, czyli <150 USD)?

Upate: najwyraźniej złym pomysłem było prowadzenie z „sinusoidą”, ponieważ projekcja ta ma również jeden punkt bez przerw. Uwaga: słowo kluczowe w tym miejscu jest nieciągłe lub przerywane . Dzięki.

Mapa motyla Cahilla z 1909 roku

matowe wilkie
źródło

Odpowiedzi:

10

Możliwe jest skonstruowanie czegoś w rodzaju przerywanej projekcji sinusoidalnej i podobnych projekcji, wykonując kilka (normalnych) projekcji sinusoidalnych oraz wycinając je i wklejając. Nie znam narzędzia, które to robi (ale nie jestem osobą, która pyta o narzędzia), więc w przypadku, gdy musisz uciekać się do plucia i klejenia ...

  • Jeśli spojrzymy na przypadkowy przykład przerwanego sinusoidy, każdy idealnie pionowy południk odpowiada pojedynczemu występowi sinusoidalnemu.

  • Na przykład patrzysz na sinusoidy wyśrodkowane na długościach: -160, -100, -60, ...

  • Następnie wytnij i przesuń części, aby wyrównać: lewa dolna część składa się z długości -180 ..- 100 i szerokości geograficznej 0 ..- 90 i jest rzutowana ze środkową długością -160. Następna część to długości -180 ..- 40 i szerokości 0..90, rzutowane z / -środkiem -100. I tak dalej (przykład, który podłączyłem, był dość skomplikowany i może istnieć zabawny interes w Rosji; nie wygląda tam na waninoidę waniliową).

Jeśli szukasz gotowej mapy, renderowałbym ją na ładny obraz georeferencyjny w wysokiej rozdzielczości i zbudowałem elementy projekcyjne, rzutując je na każdą projekcję sinusoidalną, a następnie maskując. (Zbuduj maski, projektując pełne kwadraty pokrywające docelowe zakresy długości / długości geograficznej dla każdego elementu.) Jeśli pracujesz z surowymi danymi, podzielę je na części wejściowe, uważając, aby podzielić linie i wielokąty wzdłuż każdego „wycięcia” krawędzie w rzucie.

Mam nadzieję, że jest to odpowiedź lepsza niż nic. :)

Ciekawym projektem pobocznym byłoby zautomatyzowanie tego w skrypcie (np. W / gdalwarp) ...

Dan S.
źródło
dziękuję za plucie i klej, może rzeczywiście będę musiał to posiekać i zaatakować fragmentarycznie; Nie zastanawiałem się nad takim podejściem.
matt wilkie
Znalazłem artykuł na temat tego podejścia wykorzystującego ArcInfo - opublikowałem nową odpowiedź na „nagrodę”
Mapperz
1
z lektury dokumentów, zarówno dotychczasowe przykłady ArcInfo, jak i GMT wykorzystują ten proces generowania fragmentów i wklejania razem. Teoretycznie powinno to być przystosowalne do qi, trawy lub do czego. Papier arcinfo zawiera spektakularne szczegóły procesu, podczas gdy GMT kiwa głową, aby zredukować go do 3 poleceń, aczkolwiek ograniczony do jednego wariantu projekcji.
matt wilkie
Sprawdź moją odpowiedź poniżej, stworzyłem program, który właśnie to robi :)
Michał
7

Wysłałem teraz bezpłatny i bardzo szczegółowy program do generowania wielkoskalowej megamapy Cahill-Keyes z ramkami i rozdzielczością geokomórki jednego stopnia w skali 1/1 000 000 lub mniejszej. Wykorzystuje darmowy OpenOffice.org Draw 3.0 i Perl. http://www.genekeyes.com/MEGAMAP-BETA-1/Megamap-Beta-1.html . (Sprawdź tutaj link do wielu plików JPEG, PDF i bezpłatnych plików do pobrania o wielkości do 40 MB.)

wprowadź opis zdjęcia tutaj

Gene Keyes
źródło
4

Oto program C, który może wykonać transformację współrzędnych z (Lat, Long) na (X, Y) w projekcji dymaxion. Nie jestem pewien, czy to spełnia twoje kryteria open source, ale jest tak blisko, jak przyszedłem.

Nie znalazłem niczego , co pozwoliłoby mi wykonać właściwą projekcję, ale znalazłem ten zasób autorstwa Gene'a Keyesa porównującego projekcje motyla Cahilla i dymaksji Fullera, co jest naprawdę fajne. Ma skrypt perla, który może rysować współrzędne na mapie dymaxion. Stamtąd znalazłem podstawę tego skryptu: wspomnianą wcześniej stronę RW Greya, która ma program w języku C, który może dokonywać transformacji współrzędnych, i proszę zobaczyć jego notatkę na dole strony dotyczącą warunków użytkowania kodu.

yhw42
źródło
4

Jason Davies wyprodukował wiele przerwań dla D3.js , takich jak Waterman Butterfly:

wprowadź opis zdjęcia tutaj

Sprawdź jego stronę pod kątem wspaniałej pracy, którą on i Mike Bostock wykonali, wprowadzając przerywane projekcje do D3.

scw
źródło
2

Pakiet mapproj R obsługuje niezły zakres projekcji, wśród nich sinusoidalny.

Możesz także spojrzeć na Myriahedral Project Jacka van Wijka według jego pracy :

Wszystkie obrazy zostały wyprodukowane za pomocą specjalnie opracowanego, zintegrowanego narzędzia do określania siatek i ciężarów oraz do obliczania i renderowania wyników, działającego pod MS Windows.

radek
źródło
Ale czy obsługuje nieciągłą wersję projekcji sinusoidalnej?
podmroku
1
-1 dla mapproj, który (z dokumentów) obsługuje tylko jednopunktową formę sinusoidalną, „równoleżniki sinusoidalne () o równych odstępach, równej powierzchni, takie same jak bonne (0)” . +1 dla Myriahedral, która jest zdecydowanie nieciągła i wygląda interesująco. Użyte oprogramowanie wydaje się być jednak prywatne i niedostępne.
matt wilkie
1
@ underdark: nie było jasne, że aktualizacja b4 wskazuje, że sinusoidalny musi być nieciągły, stąd moja sugestia. @ matt: został stworzony w środowisku akademickim i myślę, że jest szansa na uzyskanie dostępu od autora.
radek
cóż, tytuł pytania się nie zmienił;) nvm
podmrok
2

Dawno temu zaimplementowałem Cahill-Keyes w D3.js, śledząc świetną dokumentację / kod Gene Keyes na jego stronie internetowej. Można go znaleźć w tym bloku

Oto migawka:

wprowadź opis zdjęcia tutaj

espinielli
źródło
1

Gene Keyes i partner Mary Jo Graça opublikowali niedawno Cahill-Keyes Octant Graticule: Zasady i specyfikacje z programami Perl i makrami OpenOffice.org 2.0 dla 1/1 000 000 Megamap w ramach wspólnego zasobu kreatywnego, podobnie jak brak licencji na pracę komercyjną. Streszczenie „Jak powstaje kompletna siatka stopniowa mapy świata z ośmioma oktantami w skali 1/1 000 000 przy użyciu Perla i makr w bezpłatnym programie do rysowania wektorów OpenOffice.org 2.0 na netbooku Asus o wartości 300 USD. To kolejna część mojego szkicu uwagi do mapy Cahill-Keyes „Real-World”. Opisuje ona jedynie siatkę, w szczegółach, zarówno jako archetyp ręcznie, jak i komputerowo. Kolejnym wyzwaniem jest wprowadzenie danych GIS. ”Grafika w pytaniu pochodzi ze strony Gene'a. Do tej pory nie pisałem o stronie Perla i OO, ponieważ nie opublikował jeszcze strony.

miniatura wyniku makra Open Office

Stworzyłem repozytorium rtęciowego kodu źródłowego ich pracy na stronie http://bitbucket.org/maphew/cahill-keyes, aby ostatecznie zająć się częścią „dostania się do GIS”. Chociaż na razie nic nie zostało zrobione - jest to róg mojego biurkowego projektu, postęp będzie powolny. :)

matowe wilkie
źródło
1

Jak wspomniano wcześniej, program C działa tutaj dobrze. Dostępne również tutaj w javascript dla openlayers.

Z powodzeniem wykorzystałem oba, ale najwięcej powiodło się z wersją javascript w systemie skryptowym Adobe Illustrator. Przyjąłem pliki kształtów i przekonwertowałem je na obiekty javascript, załadowałem do programu Illustrator, a podczas rysowania przebiegałem punkty przez kod projekcji javascript.

Z tym kodem stworzyłem bardzo interesującą mapę stref czasowych.

Dopiero zaczynam pracę z QGIS, więc nie jestem pewien, czy istnieją sposoby na niestandardowe programowanie projekcji w ten sposób, ale byłbym bardzo zainteresowany tutaj.

gazhay
źródło
Cześć gazhay, witamy na GIS.se :) Dobrą praktyką jest używanie tytułu strony lub innego wyróżniającego fragmentu tekstu zamiast herelinkowania; ułatwia wyszukiwanie nowych linków, gdy strona docelowa nieuchronnie ulegnie bitrotowi. (Byłoby to również lepiej umieścić jako komentarz do wspomnianej „wcześniej wspomnianej” odpowiedzi, ale zdaję sobie sprawę, że jako nowy użytkownik nie jest jeszcze dla ciebie otwarty). Dziękuję za pomoc. Zachęcam do pytania i odpowiedzi na temat przepływu pracy Shape> Illustrator> Openlayers, ponieważ brzmi to interesująco ( gis.stackexchange.com/help/self-answer )
matt wilkie
1

Zakodowaną projekcję sinusoidalną zakodowałem w javascript, więc działa ona w przeglądarce internetowej. Możesz to sprawdzić tutaj: http://www.winski.net/?page_id=12 . Popieram również projekcję płatków stokrotek USGS.

Musisz tylko wybrać obraz wejściowy, sinusoidalnie przerwaną projekcję z listy projekcji, liczbę porów i kliknąć „projekt”.

Jest objęty BSD, więc możesz zrobić z nim wszystko, co chcesz :)

Michał
źródło