Viac

Ako previesť na webovú projekciu mercatora pomocou nástroja s otvoreným zdrojovým kódom?


Mám súbor KML, ktorý potrebujem previesť na projekciu webového mercatora. Tento súbor prejde do Tilemill. Aké sú dobré open source nástroje na konverziu súborov na projekciu web mercator?


Po prvé, nie je potrebné projektovať údaje na webmercator, pretože tilemill môže projektovať za behu. Ak však máte veľkú množinu údajov, pomôže vám mať údaje v programe WebMercator.

Upozorňujeme, že podľa štandardu KML môžu byť údaje KML iba vo formáte WGS84 Latlong, t. J. EPSG: 4326.

Preto budeme musieť tieto údaje premietnuť do iného formátu. Ak máte v KML údaje iba jedného typu (tj. Buď body, mnohouholníky atď.) S rovnakými poľami, navrhnem vám, aby ste tento KML premietli do súboru tvarov.

Ogr2ogr zo sady nástrojov Gdal môžete použiť na projektovanie svojho KML pomocou nasledujúceho príkazu:

ogr2ogr -t_srs EPSG: 3857 output.shp input.kml

Ako Andre Jooste varoval v nižšie uvedenom komentári,

Sledujte názvy atribútových tabuliek. Sú obmedzené vo formáte shapefile na 10 znakov, a nie iba na číslo. ogr2ogr môže v prípade potreby skrátiť názvy polí


Zostavte si svoju vlastnú aplikáciu na sledovanie letov s Pythonom a údajmi o letovej prevádzke

Sledovanie polohy niečoho je téma, ktorá sa mi páči, pretože vo mne vyvoláva pocit, že som človek so šiestym zmyslom. S týmto zmyslom viem, kde sa predmet nachádza a ako sa pohybuje, napriek tomu nemôžem objekt vidieť priamo voľnými očami. Ako potom získame šiesty zmysel? Pretože ako obyčajný človek máme iba päť zmyslov.

Podľa mňa v dnešnej digitálnej dobe sme už mali šiesty zmysel, ktorý sa nazýva technológia implementovaná v aplikácii. V súvislosti s našou témou v tomto príspevku o sledovaní letov existuje množstvo aplikácií na sledovanie letov, ako napríklad flightradar24, FlightAware, flightview a tak ďalej, ktoré nám umožnili monitorovať polohu lietadiel okolo Zeme. Tento príspevok nebude diskutovať o týchto aplikáciách, navyše budem diskutovať o tom, ako vytvoriť vlastnú aplikáciu na sledovanie letov s Pythonom.

Predtým som už zverejnil dva návody o sledovaní letov pomocou pythonu. Prvá z nich je o vytvorení jednoduchej aplikácie na sledovanie letov s Pythonom a druhá o vytvorení aplikácie na sledovanie letov s pandami a bokehom. Aký je rozdiel od tohto? Hlavným rozdielom je zdroj údajov. V týchto dvoch predchádzajúcich príspevkoch som použil výmenu ADS-B a v tomto návode som používal sieť Opensky. Ďalším rozdielom je verzia modulu. V tomto tutoriáli používam najnovšiu verziu knižnice python, najmä na vykresľovanie knižnice. V kóde teda dôjde k miernej zmene.

Dosť na úvod. Teraz sa presunieme k našej hlavnej téme o tom, ako pomocou Pythonu vytvoriť aplikáciu na sledovanie letov pomocou údajov o otvorenej letovej prevádzke. Tento tutoriál pozostáva z niekoľkých čiastkových tém: Získanie údajov, import požadovaných knižníc, načítanie základnej mapy, vykreslenie polohy lietadla a vytvorenie aplikácie na sledovanie letu "realtime ". Budeme diskutovať o každej časti a na konci tohto tutoriálu dostaneme aplikáciu na sledovanie letov, ktorá je spustená v prehliadači, ako je znázornené na obrázku 1.

Obrázok 1. Aplikácia na sledovanie letu

Získavanie údajov o letovej prevádzke

Ako som už spomenul, v tomto návode používame údaje o otvorenej letovej prevádzke zo siete OpenSky Network. OpenSky Network je neziskové konzorcium, ktoré poskytuje verejnosti údaje o letovej prevádzke, a to najmä na výskumné a nekomerčné účely. K údajom je možné získať prístup prostredníctvom rozhraní REST API, Python API a Java API. V tomto tutoriáli použijeme REST API na načítanie aktuálnych údajov o letovej prevádzke.

Na získanie údajov pomocou REST API je možné použiť operáciu žiadosti. Môžu byť použité dva typy požiadaviek. Prvým je požiadavka na konkrétne lietadlo na základe času v časovej pečiatke UNIX alebo adresy ICAO24. Druhý, pomocou súradnicového systému WGS84, môžeme získať všetky údaje o lietadlách v určitom rozsahu oblasti. Prístup k údajom je navyše možné vykonávať anonymne alebo registrovaným užívateľom. Pre anonymnú žiadosť má rozlíšenie 10 sekúnd a pre registrovaného používateľa 5 sekúnd.

V tomto návode použijeme druhý. Definujeme rozsah oblasti s minimálnymi a maximálnymi súradnicami a potom odošleme dotaz, aby sme získali všetky údaje o lietadlách v danej oblasti. Napríklad chceme načítať údaje cez Spojené štáty s minimálnou súradnicou -125,997,30,038 a maximálnou súradnicou -68,748,52,214. Dotaz na anonymného aj registrovaného používateľa bude nasledujúci.

Pred pokračovaním v čítaní a overením správnosti dopytu to vyskúšajte. Skopírujte anonymný dotaz a vložte ho do prehliadača. Ak dostanete odpoveď ako na obrázku 2 nižšie, funguje to.

Obrázok 2. Odozva údajov o letovej prevádzke

Odpoveď na návrat, ako je znázornené na obrázku 2, je v štruktúre JSON s dvoma kľúčmi. Prvá je čas a ten druhý je Štátov ktorý obsahuje údaje pre každé lietadlo v poli zoznamu. Pole zoznamov ukladá mnoho údajov, ako napríklad: adresa ICAO24, volací znak lietadla, krajina pôvodu, časová poloha, posledný kontakt, zemepisná dĺžka, zemepisná šírka, nadmorská výška barometra atď. Úplné vysvetlenie reakcie na údaje a tiež ďalšie informácie o rozhraní OpenSky Network API nájdete v dokumentácii k rozhraniu OpenSky Network API.

Získavanie údajov o letovej prevádzke v Pythone

Údaje o návštevnosti sme už získali v prehliadači pomocou rozhrania REST API. Teraz to urobme v Pythone a spracujeme odpoveď na ďalší účel. Pre tento tutoriál používam notebook Jupyter s Pythonom 3.8.2 a niektoré knižnice ako Bokeh 2.1.1, Pandas 0.25.3, požiadavky, json a numpy.

Nasleduje kód na odoslanie požiadavky a malé spracovanie údajov. Na začiatku importujeme požadované knižnice, ako sú požiadavky, json a Pandas. Potom definujte súradnicu rozsahu vo WGS84 s príslušnou premennou lon_min, lat_min, lon_max a lat_max. Na základe súradnice rozsahu zadajte požiadavku. Ak ste registrovaný užívateľ, zadajte užívateľské meno a heslo do užívateľské meno a heslo premenná na riadku 11-12. Na základe zadaných súradnicových a užívateľských údajov vytvoríme dopytový dotaz v url_data premenná ako v riadku 13 a získajte odpoveď vo formáte json. Zvyšok kódu sa použije na výpis údajov o odpovedi do dátového rámca spoločnosti Pandas a nahradí prázdne/prázdne údaje hodnotou 'NaN ' hodnotou 'No Data '. Posledný riadok je dátový rámec a#39 s hlava metóda sa používa na zobrazenie prvých 5 horných riadkov údajov, ako je znázornené na obrázku 3.

Obrázok 3. Rámček údajov o sledovaní letov

Uistite sa, že po spustení kódu máte výsledok ako na obrázku 3. Ak ho získate, znamená to, že je všetko v poriadku, a máme údaje, ktoré budú použité na ďalší krok.

Vynesenie lietadla na mapu

Po získaní údajov teraz nechajte vykresliť polohu všetkých lietadiel na mape. Na vykresľovanie používame knižnicu Bokeh. Preto musíme najskôr importovať knižnicu. Okrem toho musíme tiež importovať knižnicu NumPy, ktorá bude použitá na prevod súradníc.

Konverzia súradnicového systému je implementovaná vo funkcii, ktorá sa nazýva wgs84_web_mercator_. Ako pomenuje táto funkcia, bude použitá na transformáciu súradnice WGS84 na webový súradnicový systém Mercator. Táto transformácia je potrebná, pretože používame a STAMEN_TERRAIN základná mapa vo webovom prehliadači, ktorý má webovú projekciu Mercator (EPSG: 3857).

Po vytvorení funkcie prevodu súradníc a vykonaní transformácie pre dátový rámec a súradnice rozsahu. Ďalej nastavíme nastavenia vykresľovacieho obrázku zadaním rozsahu oblasti vykresľovania na základe rozsahu súradníc x a y. Lietadlo bude vynesené na základnú mapu na základe súradníc x a y s bodmi a tiež s obrázkom ikony lietadla. Prečo sa na vykreslenie lietadla používa bod aj obrázok? Obrázok poskytne lepšiu vizualizáciu pomocou obrázku lietadla a dá sa otáčať s príslušným uhlom stopy. Ale bohužiaľ nemôže vybraný objekt vysoko osvetliť a zobraziť viac informácií pomocou nástroja na vznášanie sa. Na vyriešenie tohto problému používame objekt typu obrázok a bod v kruhu, aby sme získali peknú vizualizáciu a umožnili nástroj na výber a vznášanie sa.

Nasleduje kód až do tohto kroku. Ak je vykonaný, dostaneme výsledok ako na obrázku 4.

Zostavte aplikáciu na sledovanie letov

Doteraz sme diskutovali o získavaní údajov o letovej prevádzke a zakresľovaní lietadla na mapu. V tejto poslednej časti uvidíme, ako vytvoriť aplikáciu na sledovanie letov, ktorá je spustená vo webovom prehliadači. Aplikácia automaticky načíta nové údaje v určenom intervale a vykreslí údaje na mapu. V tejto časti skombinujeme kód z predchádzajúceho kroku a zabalíme ho do aplikácie pomocou knižnice Bokeh. Kompletný kód nájdete na konci tohto tutoriálu.

Ak sa pozriete na kód, musíme importovať ďalšiu knižnicu Bokeh, ako napr Server, Aplikácia a FunctionHandler. Kód aplikácie začína na riadku 50. Tu vytvoríme hlavnú funkciu aplikácie, ktorá sa nazýva sledovanie letu. Hlavná funkcia pozostávajúca zo všetkých procesov sa vykoná, keď sa vykoná hlavná funkcia, ako je aktualizácia letových údajov, uloženie do dátového rámca Pandas, konverzia na zdroj údajov stĺpca Bokeh a streamovanie, aktualizácia spätného volania každých 5 sekúnd a vykreslenie údajov na mapu. Po vytvorení hlavnej aplikačnej funkcie na konci určíme niektoré premenné alebo parametre pre server. Celý proces nájdete pomocou značiek komentárov v kóde

Teraz je načase aplikáciu otestovať. Spustite kód a otvorte webový prehliadač. Zadajte localhost: číslo portu (napr. Localhost: 8084). Vo webovom prehliadači by ste mali vidieť spustenú aplikáciu na sledovanie letu, ako je to na obrázku nižšie.

Obrázok 5. Aplikácia na sledovanie letov vo webovom prehliadači

To je celý tento návod, ako vytvoriť aplikáciu na sledovanie letov takmer v "reálnom čase " pomocou údajov z pythonu a otvorenej letovej prevádzky. V tomto návode sme sa naučili získavať údaje o otvorenej letovej prevádzke z OpenSky Networks, spracovávať ich a vytvárať aplikáciu na sledovanie letov, ktorá beží vo webovom prehliadači. Pred ukončením tohto príspevku by som sa chcel poďakovať asociácii OpenSky Network za všetku tvrdú prácu a sprístupniť informácie verejnosti. Ďakujem za prečítanie a prosím, podeľte sa o to s ostatnými, ak si myslíte, že to bude pre nich prínosom.

V každom prípade, ak ste používateľom QGIS, napísal som tiež návod o vizualizácii živých dát v reálnom čase v QGIS v reálnom čase s týmto prípadom použitia údajov o letovej prevádzke. V prípade záujmu si to overte.


Použite Proj4js spolu s ArcGIS API pre JavaScript na replikáciu súradníc za behu

V rámci technickej podpory som hovoril s mnohými ľuďmi, ktorí chceli vo svojich aplikáciách JavaScript pri použití základnej mapy s vlastnou projekciou nepretržite zobrazovať zemepisnú šírku a dĺžku aktuálnej polohy myši. Hneď po vybalení podporuje ArcGIS API pre JavaScript reprojektovanie takmer všetkých súradníc, na ktoré si spomeniete, ale ak nekonvertujete medzi WGS84 a Web Mercator, je potrebné využiť službu geometrie, aby ste získali pomoc s matematikou.

Naša služba geometrie je úžasný nástroj, ktorý pomáha so všetkými druhmi manipulácií a analýz vrátane ukladania do vyrovnávacej pamäte, výpočtu konvexných trupov, znižovania hustoty vrcholov a pretvárania a môže pracovať na súbore funkcií súčasne, ale v tomto scenári je to niečo podobné, ako keby ste vyviedli motorovú pílu. rozkrojte svoj sendvič na polovicu.

Čas potrebný na odoslanie žiadosti a čakanie na odpoveď znemožňuje nepretržité reprojektovanie aktuálnej polohy myši. Našťastie existuje open source knižnica JavaScript s názvom Proj4js, ktorá vám môže pomôcť. Po načítaní Proj4js a poskytnutí informácií o dvoch súradnicových systémoch, ktoré chcete reprojektovať, môžete získať potrebnú odpoveď priamo v prehliadači.

Toto sú základné kroky, ktoré musíte dodržať:

1. načítajte Proj4js vedľa JSAPI vo vašej aplikácii pomocou ďalšej značky skriptu

2. definujte dve vlastné projekcie vo formáte, ktorému Proj4js porozumie (ďalšie informácie o formátovaní nájdete v projekte v Githube)

3. nakoniec zapojte poslucháč udalostí, aby proje4js mohol vypočítať reprojekciu zakaždým, keď sa myš pohybuje po mape

živú ukážku, ktorá zobrazuje súradnice zemepisnej šírky a dĺžky na interaktívnej mape UTM 12N, nájdete tu:


Coregister

Nástroj spoločného registra vám umožňuje spoločne zaregistrovať množinu cieľových položiek na jednu ukotvenú položku v rámci vašej objednávky, čo uľahčuje vykonávanie analýzy časových radov hlbokých dočasných zásobníkov snímok. Nástroj na spoločnú registráciu zaisťuje, že obrázky v zadanom časovom rade sú priestorovo zarovnané, takže každá funkcia na jednom obrázku sa čo najpresnejšie prekrýva s jeho polohou na akomkoľvek inom obrázku v sérii.

Tento nástroj je navrhnutý tak, aby podporoval spoločnú registráciu malých oblastí záujmu - obsiahnutých v rámci jednej scény - a funguje najlepšie s vysokým geografickým prekrytím medzi scénami v časovom rade.

Vstupy produktu

Nástroj coregister podporuje všetky typy položiek okrem REScene a všetky typy balíkov okrem balíkov basic_ * a * _nitf. Nie je kompatibilný s kompozitným nástrojom.

Parametre

  • anchor_item (reťazec) (povinné): id_položky položky, do ktorej by mali byť spoločne zaregistrované všetky ostatné položky. V súčasnej dobe môže byť dodaný iba jeden item_id, ktorý musí byť zahrnutý ako jeden z produktov v objednávke. Položky v objednávke sa musia geograficky prekrývať s položkou kotvy, aby bola úspešne zaregistrovaná.

Príklad žiadosti

Výstupy nástrojov

Pre každý zväzok sa vytvorí jeden výstupný súbor snímok. Súbor snímok kotvy a zodpovedajúce udm budú mať k svojim názvom súborov pripojené "_anchor". Súbory snímok a im zodpovedajúce udmy, ktoré sú úspešne spoluzaregistrované alebo sú už priestorovo zarovnané s položkou ukotvenia (t. J. Nebolo ich potrebné spoločne zaregistrovať), budú mať k svojim názvom súborov pripojený "_coreg".

Tento nástroj dodáva pre každú položku v objednávke (okrem položky ukotvenia) dodatočný súbor json v kvalite coregistration, ktorý obsahuje podrobnosti o transformácii každej výstupnej položky. Budú prechádzané súbory Rpc a xml.

Položka Coregistration Parametre súboru JSON

Súbor postranného vozíka json kvality koregistrácie obsahuje nasledujúce informácie o transformáciách koregistrácie:

  • projection_epsg_before: Zobrazí pôvodnú projekciu položky.
  • projection_epsg_after: Uvádza projekciu položky po transformácii. Ak bola transformovaná na reprojekciu položky kotvy, bude aktualizovaná. Ak nebola položka premietnutá, toto pole bude prázdne.
  • posun pixelov: Popisuje transformáciu koregistrácie v pixeloch.
  • matching_score_before: Odvodená metrika, ktorá popisuje zarovnanie obrazu pred spoločnou registráciou.
    • Zodpovedajúce skóre sa zameriava na kombináciu chyby normalizovaného štandardného koreňa štvorca a indexu štrukturálnej podobnosti.
    • Zodpovedajúce skóre sa pohybuje od 0 do 1.
    • Skóre nad 0,8 naznačuje, že položka už má veľmi dobré zarovnanie a je už v korelácii. Tieto súbory budú označené príponou "_coreg" a budú odovzdané (alebo premietnuté do projekcie ukotvených položiek a dodané).
    • Ak je skóre nižšie ako 0,8, nástroj sa pokúsi vec zaregistrovať. Všimnite si toho, že skóre 0,8 nemusí nutne znamenať zlé zarovnanie.

    Položky, ktoré sa neregistrujú alebo ktoré majú za následok zlepšenie skóre zhody o menej ako 0,001 po transformácii koregistrácie, nebudú transformované. Namiesto toho budú dodané bez akejkoľvek koregistračnej (alebo reprojekčnej) transformácie a "_coreg" nebude pripojený k ich názvom súboru.

    Príklad výstupu - Úspešná registrácia

    Príklad výstupu - Zlyhanie základnej registrácie

    Príklad výstupu - koregistrácia preskočenej položky koregistrácie

    Pretože hodnota matching_score_forefore pre 20200714_165944_0f4e_3B_AnalyticMS.tif je väčšia ako 0,8, položka bude odoslaná znova.

    Budeme radi, ak nám tu poskytnete spätnú väzbu na nástroj Coregister


    Pohľad pod kapotu Lesných atlasov

    Nasadenie a správa rôznych lesných atlasov, každý vo viacerých jazykoch, vyžaduje silnú technickú architektúru a schopnosti. Tu je pohľad do zákulisia, prečo sú tieto stránky spustené.

    1. Budovanie kapacít

    Aby sme zaistili, že údaje o každom lesnom atlase môžu pomôcť ovplyvniť rozhodovanie na národnej úrovni, zaviedli sme územné plánovanie a priestorové myslenie naprieč ministerstvami. Aby sa úradníci zoznámili s priestorovými údajmi a analýzami, existujúce názvy lesov a využívania pôdy pre každú krajinu boli digitalizované a publikované ako tlačené, tak interaktívne mapy. Mapy predstavili súčasné rozdelenie pôdy, zmenu krajinnej pokrývky a vzájomné závislosti medzi nimi a pomohli zamestnancom porozumieť sile týchto typov analytiky. Zamestnanci boli potom ďalej školení v GIS a správe dát, čo im umožnilo vytvárať mapy a analýzy samy. So zvýšenou kapacitou boli zavedené komplexnejšie systémy využívajúce centrálne servery, podnikové geodatabázy a online geodatové portály. Aj keď zamestnanci ministerstva teraz spravujú a aktualizujú údaje sami, zamestnanci WRI v danej krajine stále denne podporujú kartografické jednotky a poskytujú školenia o práci, aby sa zaistila kontinuita a stabilný systém.

    2. Architektúra systému

    Navrhnúť robustný systém, ktorý umožní celej organizácii zdieľať svoje údaje v kontexte krajín Konžskej panvy, je náročné. Veci, ktoré sú v západnom svete považované za samozrejmé, ako napríklad stabilná elektrická sieť a širokopásmový internet, nie sú v strednej Afrike samozrejmosťou. Aj keď je veľa šampiónov, celková počítačová gramotnosť je stále veľmi nízka.

    ArcGIS poskytuje riešenia, ktoré fungujú aj v tomto náročnom prostredí. Kartografické jednotky na ministerstvách sú vybavené centrálnou databázou ArcSDE. Technici replikujú geodatabázu na svoje lokálne počítače a môžu k údajom pristupovať a upravovať ich, aj keď je sieť nefunkčná alebo pracujú mimo prevádzky. Verzia verzií umožňuje udržať projekty izolované, kým nie sú pripravené na zverejnenie. Odlišné pravidlá topológie pomáhajú tímu rýchlo identifikovať nezrovnalosti v dátach. Pravidelná synchronizácia s centrálnou databázou zaisťuje, že každý v tíme má vždy najnovšie údaje.

    Aby netechnický personál mal prístup k mapám a ďalším informáciám, dátové vrstvy geodatabázy sú zaregistrované v inštancii ArcGIS Server a zdieľané medzi ministerstvami pomocou ArcGIS Portal for Server. Portál je nakonfigurovaný pre odpojené prostredia a funguje nezávisle od internetového pripojenia. Aplikácie Forest Atlas sú hostené na portáli na použitie na ministerstve. Terénne kancelárie, ktoré sú mimo siete, dostávajú pravidelné aktualizácie údajov vo forme súborov delta e -mailom alebo USB kľúčom.

    Verejná verzia je umiestnená na AWS a ArcGIS online, aby bola zaistená vysoká dostupnosť. Technici udržujú systém v aktuálnom stave pomocou súborov delta na synchronizáciu online repliky centrálnej geodatabázy. Keď sú v cloude, údaje sa ďalej replikujú do živých geodatabáz, ktoré uchovávajú kópie geodatabázy v rôznych projekciách a jazykoch. Prekladaním domén a podtypov v rámci ArcSDE sú lesné atlasy schopné zobrazovať vrstvy v inom jazyku (zvyčajne francúzštine a angličtine) bez toho, aby bolo potrebné meniť podkladové údaje. Údaje používané vo webových aplikáciách sa počas synchronizácie replikujú a priamo ukladajú do projekcie Web Mercator, aby sa zaistilo rýchlejšie vykresľovanie a zníženie zaťaženia servera, pričom sa uchováva samostatná kópia v lokálnej projekcii na distribúciu prostredníctvom stránky s otvorenými údajmi.

    3. GFW Map Builder

    Atlasy lesov sú publikované pomocou Map Builderu, nástroja, ktorý GFW nedávno zverejnila. Umožňuje komukoľvek vytvoriť si vlastnú webovú stránku monitorovania lesov pomocou vlastných údajov spojených s funkciami geopriestorovej analýzy od GFW. GFW spolupracovalo s Blue Raster na vývoji tejto šablóny webovej aplikácie založenej na ArcGIS online a je publikovaná pod licenciou MIT, aby si každá organizácia mohla vytvoriť vlastnú platformu na monitorovanie lesa s vlastnými údajmi v ľubovoľnom geografickom meradle bezplatne. Používatelia môžu nasadiť Map Builder v ArcGIS online aj v ArcGIS Portal for Server.

    Používatelia si môžu prispôsobiť webové aplikácie zmenou loga a značky, vložením vlastných údajov, zameraním mapy na jedinečnú oblasť záujmu alebo upravením údajov pre konkrétnu tému. Rôzne aplikácie je možné navzájom prepojiť a vytvoriť tak komplexný atlas.

    K novej šablóne máte prístup prostredníctvom ArcGIS Online. Zdrojový kód sa nachádza na Github. Ak sa chcete dozvedieť viac o tom, ako používať GFW Map Builder, navštívte stránku s návodom GFW.

    4. ArcGIS Open Data

    Na verejnú distribúciu údajov Forest Atlas sa lesné ministerstvá spoliehajú na otvorené údaje ArcGIS. Každé ministerstvo, ktoré používa lesný atlas, má vlastnú webovú stránku s otvorenými údajmi, na ktorej zverejňuje svoje geopriestorové údaje na prístup verejnosti, ako aj ďalšie zdroje, ako sú zmluvy o lesnom hospodárstve, správy a ďalšie publikácie. Údaje distribuované prostredníctvom otvorených dátových serverov sú publikované v pôvodných projekciách spolu s komplexnými metadátami. Údaje v angličtine a francúzštine sú spravované pomocou samostatných otvorených dátových serverov.

    Používatelia môžu vyhľadávať údaje podľa kľúčového slova, celého textu alebo umiestnenia a stiahnuť požadovaný súbor údajov. Weboví vývojári môžu nájsť potrebné koncové body API na použitie vo svojich aplikáciách.

    Ak nie je uvedené inak, všetky údaje sú chránené licenciou CC-by-4.0, ktorá používateľom umožňuje používať a znova distribuovať údaje.

    Začnite s vlastným GFW

    Úspech každého lesného atlasu povodia Konga ukazuje, ako budovanie kapacít spojené s výkonnou analýzou GIS môže zlepšiť obhospodarovanie lesov na národnej úrovni. Vďaka open source nástrojom, ako je GFW Map Builder, je možné tieto aplikácie, ako napríklad Forest Atlases, škálovať rýchlejšie a jednoduchšie ako kedykoľvek predtým. Aké je teda čakanie? Začnite budovať svoj vlastný GFW ešte dnes!

    Pre každého, kto má podobné potreby, tu je niekoľko šablón a nástrojov s otvoreným zdrojovým kódom, ktoré vám pomôžu:

    Thomas je spolupracovníkom GIS pre program Potraviny, les a vodu. Vedie komponenty GIS, diaľkový prieskum, databázu a webové stránky svojej lesníckej iniciatívy v strednej Afrike.

    Asa je asistentkou výskumu GIS pre Global Forest Watch (GFW) v rámci programu Potraviny, lesy a voda. Asa sa podieľa na získavaní a príprave geografických údajov pre platformu GFW a na zlepšovaní účinnosti správy údajov v rámci platformy GFW.


    Úvod do generických mapovacích nástrojov (GMT)

    Táto prednáška je upravená z malej podmnožiny materiálu o oficiálnom tutoriáli GMT, ktorý nájdete tu: GMT Tutorial.

    Dnešná prednáška sa zameriava na GMT, tiež známy ako softvér Generic Mapping Tools. GMT vynašli dvaja postgraduálni študenti LDEO v roku 1988, Paul Wessel a Walter H.F. Smith. GMT môže vykonávať širokú škálu funkcií vrátane čítania a vykresľovania údajov, ale jeho najunikátnejšie a najsilnejšie využitie dnes spočíva v schopnosti vytvárať sofistikované projekcie máp a vizualizácie. Pretože vykresľovanie údajov je teraz celkom jednoduché pomocou MATLAB a Pythonu, budeme sa namiesto toho zameriavať na všestranné mapovacie funkcie dostupné v GMT.

    GMT je sada softvérových nástrojov založených na Unixe a budeme s nimi komunikovať prostredníctvom príkazového shellu, rovnako ako sme v tomto kurze interagovali s príkazmi Unixu.

    Pri sťahovaní GMT ste mali získať priečinok Dokumentácia. Má nasledujúci obsah

    Priečinky html a pdf obsahujú dokumentáciu GMT. Súbor PDF s kompletným výukovým programom GMT nájdete v priečinku pdf. Budeme pracovať s položkami v adresári tutoriálov. Odporúčam vám vytvoriť kópiu tohto adresára a pracovať s kópiou, nie s originálom.

    Otvorte aplikáciu GMT 5.4.2 a spustí sa nový shell terminálu. Potom CD do priečinka Dokumentácia a vytvorte kópiu:

    Všimnite si toho, že -R hovorí cp, aby rekurzívne skopíroval priečinok.

    Typický pracovný postup GMT pozostáva zo zadávania voliteľných súborov do GMT, ako je napríklad ascii alebo binárna tabuľka údajov alebo množina dát v mriežke (napr. Topografia alebo iné povrchy). GMT potom spracuje súbor v závislosti od vašej sekvencie príkazov GMT a potom vygeneruje jeden alebo viac súborov. Obvykle budete mať k dispozícii výstupný súbor postscript (.ps) alebo .pdf, ale GMT môžete použiť aj na re-grid alebo preformátovanie dátových súborov, takže niekedy len výstup re-gridových alebo spracovaných dátových súborov, v závislosti od ako to používaš.

    Pri vytváraní našich skriptov GMT použijeme niekoľko bežných príkazov Unixu, ako je presmerovanie súborov, piping a zástupné znaky.

    Online webová dokumentácia GMT je skvelým zdrojom na učenie sa príkazov GMT. Nájdete tu stránky pomocníka pre konkrétne príkazy GMT. Stránky pomoci však môžu byť zdrvujúce, pretože vám poskytnú všetky možné možnosti pre každý príkaz. Často je dosť užitočné vidieť v skripte použitý príkaz. Vrelo odporúčam, aby ste si prezreli Galéria a Kuchárska kniha sekciách v online dokumentácii, pretože obsahujú veľa príkladov. Prezrite si obrázky a nájdite ten, ktorý je podobný tomu, ktorý by ste chceli urobiť, a potom kliknutím na odkaz zobrazte súvisiace príkazy GMT použité na vytvorenie grafu.

    Môžete sa tiež dozvedieť viac o príkazoch GMT z prostredia GMT. Napríklad

    uvádza všetky dostupné príkazy GMT. Pomoc pre daný modul GMT je uvedená s príkazmi

    kde & ltmodule_name & gt by mal byť nahradený názvom konkrétneho modulu.

    Jednoduché vykresľovanie

    Najdôležitejšou súčasťou vytvárania mapového grafu je projekcia slúžiaca na premenu polôh, ktoré sú miestami na povrchu gule, na ploché zobrazenie. GMT podporuje obrovské množstvo projekcií máp. Tu sa pozrieme na ich malý počet.

    Príkaz GMT má zvyčajne volaciu sekvenciu, ktorá vyzerá takto:

    kde & ltmodule_name & gt uvádza konkrétny príkaz GMT na vyvolanie a & ltoptions & gt uvádza všetky povinné a voliteľné argumenty. Napriek tomu, že je GMT veľmi účinný, má ohromné ​​množstvo možností, ktoré môžu nových používateľov poriadne odradiť. Učenie sa príkladom je opäť často jednoduchšie ako konzultácia dokumentácie, aspoň na začiatku. Tu je odkaz na pekné miesto na vyhľadanie niektorých štandardných možností.

    Časť & gt outputFileName.ps používa symbol presmerovania Unixu & gt, aby oznámil GMT, aby odoslal výsledky do súboru s názvom outputFileName.ps. Čo je súbor vo formáte poscript (pôvodný súbor vektorovej grafiky, ktorý bol predchodcom formátu PDF).

    Na vytvorenie základnej mapovej osi použijete príkaz psbasemap, ktorý je skratkou pre „postscript base map“. Napríklad spustite príkaz:

    Výsledky si môžete pozrieť otvorením súboru kliknutím naň alebo zadaním príkazu open GMT_tut_1.ps do shellu.

    Tu sme použili štyri bežné štandardné možnosti: -R, -J, -B, -P.

    -R špecifikuje oblasť záujmu na vykreslenie so syntaxou -Rxmin/xmax/ymin/ymax. Typicky xmin a xmax by určovali minimálnu a maximálnu dĺžku a ymin a ymax by určovali minimálnu a maximálnu šírku.

    -J určuje projekciu mapy, ktorá sa má použiť, a má syntax -JXwidth [/výška]. Tu -JX znamená použiť generický karteziánsky diagram (t.j. negeografickú projekciu). Zadaním -JX4i/3i sme určili, aby bol plot 4 palce široký a 3 palce vysoký.

    -B určuje anotácie, ktoré sa majú použiť na osiach vykresľovania. Tu sme použili -Ba, kde a hovorí GMT, aby automaticky určil najlepšie anotácie. Teraz vyskúšajte pokročilejšiu verziu príkazu pomocou

    Tu ďalšie argumenty -B hovoria GMT, aby vyplnil osi ( +g) svetlou farbou a aby názov ( +t) bol „Môj prvý graf“. Podrobnejšie vysvetlenie a nápor ďalších možných možností pre -B nájdete v pomocníkovi.

    -P Určuje, aby bol plot so stránkou nastavený na režim na výšku, zatiaľ čo v predvolenom nastavení sa vykresľuje v režime na šírku. Nemáme čas sa tomu venovať, ale akékoľvek predvolené správanie GMT môžete zmeniť pomocou súboru gmt.conf vo svojom domovskom adresári. Podrobnosti nájdete v pomocníkovi GMT.

    Vykresľovanie pobrežných línií

    Tu použijeme príkaz pscoast na vytvorenie mapových grafov, ktoré majú pobrežie, rieky, jazerá a štátne hranice. Tieto geografické informácie sú súčasťou GMT s databázou GSHHG (globálna konzistentná, hierarchická, geografická databáza s vysokým rozlíšením).

    Skúste spustiť tento príkaz a zobraziť výstup:

    Tu -JM6i hovorí GMT, aby použil konformnú projekciu Mercator na vytvorenie 6 palcov širokého pozemku.

    Možnosť Účel
    -A Vylúčte malé funkcie alebo funkcie na vysokých hierarchických úrovniach
    -D Vyberte rozlíšenie údajov (úplné, vysoké, stredné, nízke alebo hrubé)
    -G Nastaviť farbu suchých oblastí (predvolene nemaľuje)
    -Ja Nakreslite rieky (vybrané funkcie z jednej alebo viacerých hierarchických kategórií)
    -L Mierka mapy (dĺžka stupnice môže byť km, míle alebo námorné míle)
    -N Nakreslite politické hranice (vrátane štátnych hraníc USA)
    -S Nastaviť farbu pre mokré oblasti (predvolené nie je farba)
    -W Nakreslite pobrežné čiary a nastavte hrúbku pera

    Musí byť vybratý jeden z -W, -G, -S. Pomocou -Df napríklad získate hraničné údaje pobrežia v plnom rozlíšení (a všimnite si, o koľko väčšia je veľkosť výstupného súboru). Skúsme zapnúť veľa možností:

    Zmena predvolených nastavení GMT

    Predvolené hodnoty GMT pre vašu aktuálnu reláciu shellu môžete dočasne zmeniť pomocou príkazu gmtset. Zadaním gmtdefaults zobrazíte všetky predvolené nastavenia pre GMT. Predpokladajme, že chcete mapy vykresľovať pomocou obyčajnej čiary pre rámec, nie ako bielu a čiernu šachovnicu, ktorú GMT predvolene používa. Toto predvolené nastavenie môžete zmeniť zadaním príkazu:

    Niektoré ďalšie projekcie

    Tu je niekoľko ďalších príkladov projekcie. Existuje oveľa viac možností projekcie, než aké tu máme priestor ukázať, takže ďalšie informácie nájdete v dokumentácii.

    Polárna stereografická projekcia:

    Tu je niekoľko možností globálnej projekcie:

    Čiary a symboly

    Tu sa naučíme, ako používať GMT na vykresľovanie čiar, symbolov a textu. Dva hlavné relevantné príkazy sú psxy na vykresľovanie čiar a symbolov a pstext na pridávanie textových štítkov do grafov. Tieto príkazy majú veľa možností, ale budeme sa zaoberať iba ich jednoduchým použitím.

    V prípade tutoriálu najskôr vykreslíme údaje v súborových dátach v priečinku tutoriálu. Pozrite sa na údaje tu:

    Tento súbor má teda dva stĺpce s číslami v rozsahu od 1 do 5. Na to, čo si GMT myslí o tomto súbore, môžeme použiť aj príkaz info:

    GMT vidí, že v každom stĺpci je N = 7 riadkov s hodnotami od 1 do 5. Vykreslite údaje pomocou psxy:

    Štandardne to GMT vykreslil ako čiaru. Vzhľad riadka môžeme zmeniť pomocou argumentov -W:

    Tu som povedal, aby používal 2-bodovú hrúbku a aby čiaru zafarbil na zeleno. Riadok by sme tiež mohli vykresliť ako vyplnený polygón pomocou argumentu -G s farbou výplne:

    Teraz nakreslime symboly pre každú (x, y) pozíciu v dátach:

    Tu argument -S hovorí psxy, aby údaje vykreslil ako symboly, a i in -Si mu povie, aby použil invertované trojuholníky. V pomocníkovi pre psxy sa dozviete o všetkých ostatných možných typoch symbolov. Časť 0,2i hovorí, že symboly majú veľkosť 0,2 palca.

    Teraz nakreslíme čiaru a symboly. Za týmto účelom najskôr nakreslite čiaru a potom pridajte symboly ako prekrytie:

    Všimnite si argument -K v prvom riadku, ktorý hovorí GMT, aby ponechal súbor otvorený na ďalšie pridanie. Potom sme v druhom riadku pomocou argumentu -O povedali GMT, aby pridal trojuholníky v režime prekrytia. We also used the Unix >> append operator, which appends the overlay to the plot file rather than overwriting the file.

    Now we will make a plot of earthquakes around Japan where the color of the symbol indicates depth and the size of the symbol indicates magnitude. See file quakes.ngdc :

    The first line above makes are color palette of red, green and blue for earthquakes with depths from 0 to 70, 70 to 300 and greater than 300 km depth. The second line creates a plot of northern Japan's outline. The third line plots the earthquakes. -h3 tells GMT to skip the first three header lines. -i4,3,5,6s0.1 tells it to read columns 5,4,6,7 (note it uses 0 based indexing!) and to scale the values in the 7th column by 0.1. Since the 7th column is the earthquake magnitude, this converts it to a number that will be useful to use as the centimeter size of the symbols. -Scc tells it to plot the symbols as circles using centimeters as the size units.

    We don't have time to cover pstext , but it uses similar syntax. See the examples in the GMT tutorial and online cookbook for further info.

    Gridded Surfaces

    Here we will use GMT to create a shaded map plot of gridded topography data. We will use the file tutorial file us.nc , which contains a subset of high-resolution topography data from the global 30” DEM called SRTM30+ (SRTM stands for the shuttle radar topography mission).

    Let's peek inside this file to see what it contains. Since this is a binary format, we can't open it in a text editor. Instead we use GMT's grdinfo command:

    Here you can see that the file goes from -108 to -103º longitude and 35 to 40º latitude, with z spanning from 1052 to 4328 m.

    GMT has many built in color palettes (CPT's) that you can use for your colormap on shaded plots. You can also download some really nice freely available ones (see http://soliton.vm.bytemark.co.uk/pub/cpt-city/). Here we will use GMT's rainbow color palette to create a colormap that spans the z range of the data in us.nc using the makecpt command:

    This command mapped GMT's rainbow color palette to the elevations 1000 to 5000 ( -T command) and made the color scale have continuous shading ( -Z ) rather than the default which is discrete shaded colors. The output was saved to file topo.cpt .

    Now let's make a shaded figure of this data.

    Take a look at that figure. It looks okay, but there is no illumination to create shadows that help define the topography, so it looks quite flat.

    You can add illumination to your GMT map plots by first computing the gradient of the topography using the grdgradient command. The gradients are then used to shade the topography:

    Here we used grdgradient to output the gradients to file us_i.nc using the -G argument. We then included the gradient data in the grdimage command using thhe -I flag. Also note the new use of the -K flag in the grdimage line. That flag tells GMT to keep the file open for further additions. We then used the psscale command to add a colorscale to the top of the figure. Note that psscale was called with the -O option, which means overlay it on top of the previously plotted stuff. We also used >> for the redirection, which tells GMT to append the color scale to the previously plotted file. Getting the syntax write for these types of multilayered plots can be tricky, so study the examples on the GMT help carefully. See also the help for psscale for more info.

    We don't have time to cover this, but you could create contours for topography using the grdcontour command. There are lots more useful GMT commands but we are out of time, so go checkout the GMT cookbook examples for further knowledge.

    Closing Comments

    GMT is really powerful but the calling sequences can be highly cryptic. Check out the online examples and cookbook as useful starting places.

    Posledné príspevky

    • bash
    • file system
    • pytón
    • programovanie
    • shell
    • unix
    • assignment
    • pandas
    • xarray
    • MATLAB
    • vizualizácia
    • GMT
    • habanero
    • git
    • klaster
    • parallel computing
    • fortran
    • balenie
    • vpn
    • source code editor
    • kontrola verzií
    • mapping
    • základná mapa
    • ndarray
    • otupený
    • matplotlib
    • parallel programming
    • arrays
    • github
    • project
    • GeoMapApp
    • mpi
    • Konečný
    • dask

    /> Content licensed under a Creative Commons Attribution-NonCommercial 4.0 International License, except where indicated otherwise.


    How to convert to web mercator projection using an open source tool? - Geografické informačné systémy

    Simple Gauss-Krüger transformation for C++

    This project provides a C++ implementation of coordinate transformation between geodetic coordinates and grid coordinates of Gauss (Transverse Mercator) projections, using the Krüger-n series developed to fourth order.

    A lot of inspiration comes from the Java implementation made by Kodapan, primarily in the way classes are used. That project is in turn a port of the Javascript implementation made by Arnold Andreasson. The equations and numbers used are directly based on the formulas published by Lantmäteriet (the Swedish National Land Survey), especially the document called Gauss Conformal Projection (Transverse Mercator) - Krüger's Formulas, published in 2008, and tests are implemented to check the calculations against reference points provided by Lantmäteriet.

    This C++ implementation was originally developed for coordinate conversion in the public transport application Fahrplan since using Proj4 seemed overly complex, and the intent is to make it simple to include in other projects wishing to use it. Although it was developed in a Swedish context, with Swedish coordinate systems to test with, it is thought to be useful also for other coordinate systems using the Gauss-Krüger projection.

    Except the library, a simple command line tool is included so you can play around with the transformations.

    The library itself requires no more than standard library components. To build the test, Boost Test is required, and for the command line tool, Boost Program Options is required (tested using version 1.54 of Boost).

    The library can be compiled and linked dynamically or statically, or included in your project as source code files. In the former cases, it has to be compiled first:

    The values in the following example are taken from Parametrar till approximativa transformationssamband för direktprojektion mellan SWEREF 99 och RT 90, published by Lantmäteriet (projection: 7.5 gon V 0:-15). If you have more than one projections using the same ellipsoid, the ellipsoid values can be put in a class of their own:

    Example of direct transformation from SWEREF 99 to RT90 (same values as from the library usage example):

    To see all options, run the tool without options or with --help :

    To verify the calculations, tests have been implemented to check the reference points provided by Lantmäteriet. The following documents have been used:


    Tools and products

    Open-source tools

    Most of the maps are based on OpenStreetMap data, some have additional Natural Earth data on lower zoom levels and town labels from Wikidata.

    • Streets - a general-purpose map with highlighted road infrastructure
    • Satellite - a mixture of satellite and aerial imagery with labels and streets from OSM
    • Basic - map containing only basic information
    • Dark and Light - derived from Basic, both map styles are designed to serve as a discreet background for additional geodata
    • Outdoor and Topo - maps with contour lines and hillshading, designed for movement in terrain
    • 3D - to show any of the map above in three dimensions

    Maps in custom coordinate systems

    MapTiler maps are provided in standard Mercator projection. For specific use-cases, there are maps based on OpenStreetMap in local coordinate systems, namely in:

    • WGS84
    • French Lambert
    • Swiss EPSG:2056
    • Dutch RD-New
    • . and others

    Maps from other open-data sources

    Apart from maps based on OSM, there are local maps based on government open-data:

    • Ordnance Survey maps of Great Britain
    • Map of Japan with government road data
    • Map of the Netherlands

    Choropleths

    In this post I will simultaneously have Fun With Data and Fun With Maps. I will use public APIs to turn my Isle of Alameda into a “choropleth“, a map which displays areas that are colored or patterned in relation to data.

    To do this I will need to find boundaries within Alameda that I can associate with data of some kind. For this I turn to the ultimate source of geographical data within the United States: the U. S. Census Bureau. To do its work the Census Bureau divides the country into regions, states, counties, cities, tracts, and block groups and gathers data at each level. The main island of Alameda is divided into fourteen tracts which in turn are divided into fifty block groups.

    All this data is free to the public and accessible via public APIs, but the government web sites are so sprawling and complex that most people access them through intermediary sites like Knight-Ridder’s Census Reporter. These sites do a great job at producing pre-made tables and choropleths, but I want to learn how to do it myself.

    Knight-Ridder’s Census Reporter

    After much hunting I find raw tract boundaries in a downloadable CSV file from the Alameda County Data Sharing Initiative. Using the Census Reporter site to identify tract numbers, I reduce the 372 tracts in Alameda County to the 14 on the main island of Alameda. Each tract boundary is defined by a long list of longitudes and latitudes.

    I can now pull up my own Alameda map outline in NodeBox. When I convert each list to X,Y coordinates and overlay the paths, they don’t quite fit at first. I spend hours muttering and pulling my hair until I realize that the formula I’m using does not properly account for the curvature of the earth. There are different ways of projecting coordinates onto a flat surface and when you get down to the street level you need to get everything exactly right – especially when overlaying boundaries from different sources.

    I got my original island boundary from Open Street Map. OSM stores its data using the same geographic coordinate system (EPSG 4326) used by GPS devices, but uses a different projektovaný coordinate system (EPSG 3857) when creating its map tiles. To convert you need to use a spherical pseudo-Mercator projection (not the true oblate ellipsoid Mercator projection). Confused? I was – as were many others before me. Fortunately the correct formula (in many different programming languages) appears on the Open Street Map Wiki:

    Formula for converting latitude and longitude

    Note: the constant 6,378,137 in the formula is the idealized radius of the earth in meters. Formulas without this value did not work for me.

    With the right formula in place, the tract boundaries snap perfectly into position. The boundaries extend beyond the shore, but for now are sufficient to verify proper alignment:

    NodeBox display of tract boundary allignment

    Choropleths convey more information (and look cooler) when you divide the map into smaller pieces. So having cracked the code for tracts, I now turn my attention to the smallest unit used for census data: block groups.

    Finding block group boundaries expressed in pure latitudes and longitudes proves to be more difficult. I finally turn to the government’s TIGER site (Topologically Integrated Geographic Encoding and Referencing), but here I run into another problem. The boundary data is only available in shp files, which require a powerful application called arcGIS. This is what the big boys use, but I want to draw the boundaries myself.

    My solution is to convert the shp file into GeoJSON format which I can then parse using NodeBox. I try a free online conversion service, but it doesn’t work. I locate an open source library that would do the job, but don’t feel like mucking about in javascript. I finally turn to a service called MyGeodata Cloud. The first five megs are free my 11 meg file costs $3.55 – a fair price for the time saved.

    Parsing the data was a multi-step process. The original file contained 31,647 boundaries, one for each block fragment in Alameda County. Using zip code data, I identify the 14 tracts on the island and use that list to filter the data down to a mere 1298 block fragments. I then group those block fragments into 282 blocks and those blocks into 50 block groups. Here is the NodeBox network I made to do the parsing:

    NodeBox network which converts a GeoJSON file into a CSV

    And here is what all those block fragments look like before I group them into block groups and trim them to fit the outline of the island:

    NodeBox display of randomly colored block fragments

    The final step, trimming the boundaries, takes some time and patience. The basic technique is to take the intersection of one shape, like a block group, with a second shape, like the island outline. But when you look closely you see that some of the defined boundaries only approximate the true shape of the island, leaving little slivers of leftover space here and there. To fix this I have to increase the area by doing a union with an arbitrary rectangle and then do an intersection to trim it back to the exact shoreline.

    There are also some peculiarities. A tiny triangular corner of the island actually resides in San Francisco County. Since this is uninhabited marshland it cannot affect the data so I add it to the nearest block group. Another group has an absurdly narrow tongue which sticks up along the median of a street separating two other groups, creating a distracting mess. I quietly trim it away. This is the kind of thing you have to do when cleaning any dataset. The difference here is that instead of correcting numbers, you are correcting shapes. Here is the final result, slightly exploded to better show each block group boundary:

    NodeBox display of exploded block group boundaries

    Now that I finally have the boundaries of my choropleth it’s time to find data to color them with. The place to find that is a government site called the American Fact Finder. This site contains many different data sources or “programs”. In addition to the Decennial Census, there are housing surveys, commodity flow surveys, employer statistics, and much more.

    The Census Bureau’s American Fact Finder website

    I choose a source called the American Community Survey, the largest household survey the Census Bureau administers. Unlike the decennial census, it does not count everyone it uses a statistical sample to estimate information based on surveys sent to 3.5 million households per year. So it’s not as accurate as the full census, but is more up to date. The estimates are quite reliable on a large scale, but can have a significant margin of error when applied at the block group level.

    I select the 2015 5-year survey applied at the block group level in Alameda county. This reduces the available data to 342 separate tables including Median Age by Sex, Travel Time to Work, Household Size, School Enrollment, Median Income, Number of Bedrooms, Aggregate Rent, and on and on. You can only download forty tables at a time so I pick a few at random.

    Using NodeBox I can easily read these tables, lookup individual values for each block group, and then color my block groups accordingly. Within minutes I am producing one choropleth after another:

    A selection of Alameda choropleths generated in NodeBox

    These maps may not seem all that interesting to you, but for someone like me who has lived on this island for twenty-five years they are fascinating. I can imagine hundreds of possible investigations. But for now I bask in the sheer power of effortlessly turning any random spreadsheet I come across into a gleaming, perfect choropleth.

    As a final flourish I will take this idea to the next level. Instead of coloring each block group a solid color, I can fill it with randomly scattered colored dots, one dot for each person on the island. There are 63,043 people living on the main island and I can assign each one a color based on their self-identified race. Our racial diversity is one of the things I like about Alameda it’s nice to finally see it in a single image:

    NodeBox map of self-identified race in Alameda

    I hope you have enjoyed this experiment. Open source mapping has become an energetic worldwide movement with a supportive community and many powerful tools. I have packed this post with links to help you get started on your own projects here are some more.

    For more tutorials see Mike Bostock’s Let’s Make a Map and Command-Line Cartography. D3 users should check out d3-geo, a library to convert GeoJSON to SVG paths. Leaflet is another javascript library which you can use to make mobile interactive “slippy maps“. Mapbox is a popular source of maps and tools for building mapping applications. Friend of the lab Ed Jones edits Open Street Map data using the JOSM plugin and uses the Street Map Plugin for UE4 to create 3D renderings.


    Converting Topo50 coordinates

    Learn how to convert Topo50 coordinates to other projections.

    The projection and datum used to produce Topo50 and Topo250 maps is the New Zealand Transverse Mercator 2000 (NZTM2000) projection and the New Zealand Geodetic Datum 2000 (NZGD2000).

    These are different to the pre 2009 topographic map series, NZMS260 and NZMS262, which were produced using the New Zealand Map Grid (NZMG) projection and the New Zealand Geodetic Datum 1949 (NZGD1949) datum.

    Converting coordinates

    Basic conversions - to convert individual coordinates between commonly used datums and projections (including those used in the Topo50 and NZMS260 maps), you can either:

    Detailed conversions - to convert coordinates between a wider range of datums, projections and height systems, and make use of format options such as bulk conversions, you can either:

    Note: Using these detailed tools requires a working understanding of coordinate and height conversions.

    Prerušenie služby

    Over the last couple of days the server that runs the Geodetic Database and the Online Coordinate Converter has become unstable. As a result the server has to be rebuilt. We are working to do this as quickly as possible. In the meantime you can use these alternate links:

    Please sign up to our mailing list if you wish to receive an email notification when the service is back up and running.
    LINZ Geodetic Notifications