Daugiau

Kaip pridėti liniją prie „CartoDB“ žemėlapio?

Kaip pridėti liniją prie „CartoDB“ žemėlapio?


Pagal „CartoDB“ pamoką, kaip pridėti ir redaguoti geometrijas, naudojant „CartoDB“ redaktorių, kai spustelėsime Pridėti funkciją, turėtume gauti iššokantį langelį su trimis galimybėmis:

  • Pridėti tašką
  • Pridėti eilutę
  • Pridėti daugiakampį

Bet kai spusteliu tai, aš gaunu tik Pridėti tašką variantą. Ar kitos dvi galimybės persikėlė kažkur kitur? O gal yra kitas būdas pridėti eilutę?


Viename sluoksnyje galite turėti tik vienos rūšies geometriją (daugiakampį, tiesę ar tašką). Panašu, kad lentelėje jau turite keletą taškų ir dabar rodoma tik ši parinktis. Galite jį pakeisti ištrindami visus taškus ir atnaujindami puslapį, tačiau jei norite į savo žemėlapį įtraukti skirtingas geometrijas, turėtumėte sukurti naują lentelę su eilutėmis ir pridėti prie ankstesnės lentelės kaip naują sluoksnį.

Naudodami tris sluoksnius, žemėlapyje galėsite matyti tris galimas geometrijas.


Kaip pridėti liniją prie „CartoDB“ žemėlapio? - Geografinės informacinės sistemos

Galite pažvelgti į tuos išteklius, jei norite sušilti su CARTO

Kiti klausimai ir trikčių šalinimas

  • Siųsti el [email protected].
  • Į kai kuriuos klausimus jau galima atsakyti GIS „Stack Exchange“ Carto tag.

Turinys

Nustatytos paskyros

  • Instruktorius suteiks jums vartotojui ir „passwor“ ​​prieigą prie jūsų paskyros
  • Prisijunkite prie savo „geostatXX“ paskyros apsilankę https://geostatXX.carto.com

Pagrindai¶

Kaip išdėstyta 2 skyriuje, yra kelios pagrindinės duomenų struktūros, naudojamos geografinių duomenų moksle: geografinės lentelės (kurios paprastai derinamos su objekto duomenų modeliais), rastrai ar paviršiai (kurie paprastai sutampa su lauko duomenų modeliu), ir erdviniai tinklai (kurie paprastai derinami su grafiko duomenų modeliu). Aptariame tai paeiliui šiame skyriuje.

Geografinės lentelės¶

Geografiniai objektai paprastai derinami su tuo, ką mes pavadinome geografinė lentelė. Geografinės lentelės gali būti laikomos skaičiuoklės skirtuku, kuriame viename iš stulpelių įrašoma geometrinė informacija. Ši duomenų struktūra atspindi vieną geografinį objektą kaip lentelės eilutė, kiekviename lentelės stulpelyje įrašoma informacija apie objektą, jo atributus ar ypatybes, kaip matysime toliau. Paprastai šioje lentelėje yra specialus stulpelis, kuriame įrašomi geometrija objekto. Kompiuterinės sistemos, naudojančios šią duomenų struktūrą, yra skirtos geografijai papildyti a reliacinė duomenų bazė, pvz., „PostgreSQL“ (per „PostGIS“ plėtinį) arba „sqlite“ (per „spatialite“ plėtinį). Be to, daugelis duomenų mokslo kalbų (pvz., R, Julia ir Python) turi paketus, kurie taip pat perima šią duomenų struktūrą (pvz., Sf, ArchGDAL ir geopandas), ir ji greitai tampa pagrindine duomenų struktūra objektyvūs geografiniai duomenys.

Prieš tęsiant, tai padeda paminėti greitą terminologijos paaiškinimą. Šioje knygoje, neatsižvelgiant į naudojamą duomenų struktūrą, matavimą apie stebėjimą nurodysime kaip a funkcija. Tai atitinka kitus duomenis, susijusius su duomenų mokslu ir mašininiu mokymusi. Tada vienas matavimų rinkinys yra a pavyzdys. Lentelėms tai reiškia, kad funkcija yra stulpelis, o pavyzdys yra eilutė. Vis dėlto istoriškai geografinės informacijos mokslininkai vartojo žodį „ypatybė“ norėdami pasakyti apie atskirą stebėjimą, nes „ypatybė“ kartografijoje yra esmė žemėlapyje, o „atributas“ apibūdina to stebėjimo ypatybes. Kitur, a funkcija gali būti vadinamas a kintamasisir a pavyzdys vadinama įrašu. Taigi svarbu nuosekli terminologija: šiai knygai a funkcija yra viena išmatuota savybė, susijusi su stebėjimu (stulpelis), ir a pavyzdys yra vienas matavimų rinkinys (eilutė).

Norėdami suprasti geografinių lentelių struktūrą, tai padės perskaityti šalių, esančių šioje pasaulyje, aprašyme esančiame duomenų rinkinyje countries_clean.gpkg. Norėdami perskaityti šiuos duomenis, geopandose galime naudoti metodą read_file (): ^ [Paprastai pažymėsime du išlenktus skliaustus (pvz., Metodo_pavadinimas ()). funkcijair jų (pvz., paketo) praleis, kai kalbės apie objektą ar paketą.]

Lentelės viršų galime išnagrinėti taikydami metodą .head ():

ADMINISTRATORIUS geometrija
0 Indonezija MULTIPOLYGON ((((13102705.696 463877.598, 13102.
1 Malaizija MULTIPOLYGON ((((13102705.696 463877.598, 13101.
2 Čilė MULTIPOLYGON (((-7737827.685 -1979875.500, -77.
3 Bolivija POLYGON ((-7737827.685 -1979875.500, -7737828.
4 Peru MULTIPOLYGON (((-7737827.685 -1979875.500, -77.

Kiekviena šios lentelės eilutė yra viena šalis. Kiekviena šalis turi tik dvi savybes: administracinį šalies pavadinimą ir šalies sienos geometriją. Šalies pavadinimas yra užkoduotas stulpelyje ADMIN naudojant „Python“ str tipą, kuris naudojamas teksto duomenims saugoti. Šalies sienos geometrija saugoma geometrijos stulpelyje ir užkoduojama naudojant specialią „Python“ klasę, kuri naudojama geometriniams objektams vaizduoti. Kaip ir kitose „Python“ lentelėmis pagrįstose duomenų struktūrose, kiekvienoje eilutėje ir stulpelyje yra indeksas, identifikuojantis juos unikaliai ir paryškintas kairėje lentelės pusėje. Ši geografinė lentelė yra geopandų.GeoDataFrame objekto pavyzdys, naudojamas visoje Python ekosistemoje geografiniams duomenims pateikti.

Geografinėse lentelėse geografinė informacija saugoma kaip papildomas stulpelis. Bet kaip užkoduota ši informacija? Norėdami pamatyti, mes galime patikrinti objekto tipą pirmoje eilutėje:

Geopandose (kaip ir kituose paketuose, vaizduojančiuose geografinius duomenis) geometrijos stulpelis turi specialių bruožų, kurių „įprastas“ stulpelis, pvz., ADMIN, neturi. Pvz., Kai braižome duomenų kadrą, geometrijos stulpelis naudojamas kaip pagrindinė schemoje naudojama forma:

Geometriją reikia keisti atsargiai: kadangi geometrijos stulpelis yra specialus, geometrijai sureguliuoti yra specialios funkcijos. Pavyzdžiui, jei norėtume atstovauti kiekvienai šaliai naudodamiesi jos šalimis centroidas, taškas figūros viduryje, tada turime pasirūpinti, kad naudojant set_geometry () metodą būtų tinkamai nustatytas naujas geometrijos stulpelis. Tai gali būti naudinga, kai norite dirbti su dviem skirtingais to paties pagrindinio pavyzdžio geometriniais vaizdais.

Padarykime šalies ribos ir centroido žemėlapį. Pirma, norėdami apskaičiuoti centroidą, galime naudoti ypatybę gt_polygons.geometry.centroid. Tai suteikia mums tašką, kuris sumažina vidutinį atstumą nuo visų kitų formos ribos taškų. Laikymas atgal į stulpelį, vadinamą centroidu:

Dabar turime papildomą funkciją:

ADMINISTRATORIUS geometrija centroidas
0 Indonezija MULTIPOLYGON ((((13102705.696 463877.598, 13102. TAŠKAS (13055431.810 -248921.141)
1 Malaizija MULTIPOLYGON ((((13102705.696 463877.598, 13101. TAŠKAS (12211696.493 422897.505)
2 Čilė MULTIPOLYGON (((-7737827.685 -1979875.500, -77. TAŠKAS (-7959811.948 -4915458.802)
3 Bolivija POLYGON ((-7737827.685 -1979875.500, -7737828. TAŠKAS (-7200010.945 -1894653.148)
4 Peru MULTIPOLYGON (((-7737827.685 -1979875.500, -77. TAŠKAS (-8277554.831 -1032942.536)

Nepaisant to, kad centroidas yra geometrija, šiuo metu jis nėra nustatytas kaip mūsų stalo geometrija. Mes galime pereiti į centroidinį stulpelį naudodami metodą set_geometry (). Galiausiai, mes galime nubrėžti kiekvienos šalies centroidą ir ribą, perjungdami geometrijos stulpelį naudodami set_geometry:

Atkreipkite dėmesį, kaip mes galime sukurti žemėlapį, iškvietę .plot () „GeoDataFrame“. Kiekvieną bruožą galime tematiškai nuspalvinti pagal stulpelį, perduodami to stulpelio pavadinimą siužeto metodui (kaip šiuo atveju darome su ADMIN).

Taigi, kaip dabar turėtų būti aišku, beveik bet koks geografinis objektas gali būti pavaizduotas viename (ar keliuose) geometrijos stulpeliuose. Galvodamas apie įvairių formų ar geometrijų skaičių, kurią galima nupiešti, greitai nesuvokiama mintis. Laimei, Atvirasis geospatialinis konsorciumas (OGC) apibrėžė „abstrakčių“ tipų rinkinį, kurį galima naudoti apibrėžiant bet kokią geometriją. Ši specifikacija, kodifikuota standarte ISO 19125-1 - „paprastų funkcijų“ specifikacija - apibrėžia formalius šių tipų santykius: taškas yra nulio matmenų vieta su x ir y koordinatėmis. „LineString“ yra kelias, sudarytas iš daugiau daugiau nei vienas taškas, o daugiakampis yra paviršius, turintis bent vieną „LineString“, kuris prasideda ir sustoja ta pačia koordinate. Visi šie tipai taip pat turi kelis variantus, kurie nurodo kelių to paties tipo geometrijų rinkinį. Taigi, pavyzdžiui, Bolivija vaizduojama kaip vienas daugiakampis:

ADMINISTRATORIUS geometrija centroidas
3 Bolivija POLYGON ((-7737827.685 -1979875.500, -7737828. TAŠKAS (-7200010.945 -1894653.148)

o Indonezija yra daugiakampis, kuriame yra daugybė daugiakampių kiekvienai atskirai šalies salai:

ADMINISTRATORIUS geometrija centroidas
0 Indonezija MULTIPOLYGON ((((13102705.696 463877.598, 13102. TAŠKAS (13055431.810 -248921.141)

Daugeliu atvejų geografinėse lentelėse bus vieno tipo įrašų geometrija visi būti, pavyzdžiui, „Point“ arba „LineString“. Tačiau nėra oficialaus reikalavimo, kad a geografinė lentelė turi geometrijas, kurios visos turi tą patį tipą.

Šioje knygoje plačiai naudosime geografines lenteles, saugodami daugiakampius, bet taip pat taškus ir linijas. Antrojoje šio skyriaus dalyje šiek tiek panagrinėsime eilutes, tačiau kol kas sustokime ties sekundėmis. Kaip minėta pirmiau, tai yra paprasčiausias požymių tipas, nes jie neturi jokio matmens, tik prie jų pritvirtintos poros koordinačių. Tai reiškia, kad taškai kartais gali būti saugomi ne geografinėje lentelėje, tiesiog kiekvienai koordinatei reikia naudoti po vieną stulpelį. Tokio pavyzdžio rasime Tokijo duomenų rinkinyje, kurį vėliau naudosime daugiau. Duomenys saugomi kaip kableliais atskirtų reikšmių lentelė arba .csv:

Kadangi mes skaitėme ją su pandomis, lentelė įkeliama kaip „DataFrame“, be aiškaus erdvinio matmens:

Apžiūrėję lentelę pastebime, kad nėra geometrijos stulpelio:

Vartotojo ID ilguma platuma date_taken photo / video_page_url x y
0 10727420 @ N00 139.700499 35.674000 2010-04-09 17:26:25.0 http://www.flickr.com/photos/[email protected]/4545. 1.555139e + 07 4.255856e + 06
1 8819274 @ N04 139.766521 35.709095 2007-02-10 16:08:40.0 http://www.flickr.com/photos/[email protected]/26503. 1,555874e + 07 4.260667e + 06
2 62068690 @ N00 139.765632 35.694482 2008-12-21 15:45:31.0 http://www.flickr.com/photos/[email protected]/3125. 1.555864e + 07 4.258664e + 06
3 49503094041 @ N01 139.784391 35.548589 2011-11-11 05:48:54.0 http://www.flickr.com/photos/[email protected]/6. 1.556073e + 07 4.238684e + 06
4 40443199 @ N00 139.768753 35.671521 2006-04-06 16:42:49.0 http://www.flickr.com/photos/[email protected]/2482. 1,555899e + 07 4.255517e + 06

Šiuo formatu pateikiama daug taškinių duomenų rinkinių. Norėdami išnaudoti visas jų galimybes, patogu jas konvertuoti į „GeoDataFrame“ lenteles. Šiame procese yra du žingsniai:

Paverskite koordinates geometrijomis:

Sukurkite „GeoDataFrame“ objektą:

Dabar „gt_points“ atrodo ir jaučiasi lygiai taip pat, kaip ir anksčiau matytų šalių, nes geometrijos stulpelyje yra skirtumas su POINT geometrijomis:

Vartotojo ID ilguma platuma date_taken photo / video_page_url x y geometrija
0 10727420 @ N00 139.700499 35.674000 2010-04-09 17:26:25.0 http://www.flickr.com/photos/[email protected]/4545. 1.555139e + 07 4.255856e + 06 TAŠKAS (139.70050 35.67400)
1 8819274 @ N04 139.766521 35.709095 2007-02-10 16:08:40.0 http://www.flickr.com/photos/[email protected]/26503. 1,555874e + 07 4.260667e + 06 TAŠKAS (139.76652 35.70909)
2 62068690 @ N00 139.765632 35.694482 2008-12-21 15:45:31.0 http://www.flickr.com/photos/[email protected]/3125. 1.555864e + 07 4.258664e + 06 TAŠKAS (139.76563 35.69448)
3 49503094041 @ N01 139.784391 35.548589 2011-11-11 05:48:54.0 http://www.flickr.com/photos/[email protected]/6. 1.556073e + 07 4.238684e + 06 TAŠKAS (139.78439 35.54859)
4 40443199 @ N00 139.768753 35.671521 2006-04-06 16:42:49.0 http://www.flickr.com/photos/[email protected]/2482. 1,555899e + 07 4.255517e + 06 TAŠKAS (139.76875 35.67152)

Paviršiai¶

Paviršiai naudojami įrašyti duomenis iš lauko duomenų modelio. Teoriškai laukas yra ištisinis paviršius, todėl jame yra begalinis vietų skaičius, kuriose jį būtų galima išmatuoti. Tačiau iš tikrųjų laukai matuojami ribotoje vietų imtyje, kurios, siekdamos tęstinumo pojūčio ir geriau atitikti lauko modelį, yra vienodai struktūrizuotos erdvėje. Taigi paviršiai vaizduojami kaip tinkleliai, kur kiekvienoje ląstelėje yra mėginys. Tinklelis taip pat gali būti laikomas lentele su eilėmis ir stulpeliais, tačiau, kaip aptarėme ankstesniame skyriuje, abu jie yra tiesiogiai susieti su geografine vieta. Tai labai prieštarauja geografinėms lentelėms, kur geografija apsiriboja vienu stulpeliu.

Norėdami ištirti, kaip „Python“ vaizduoja paviršius, naudosime Brazilijos miesto San Paulo pasaulio gyventojų duomenų rinkinio ištrauką. Šis duomenų rinkinys registruoja populiacijos skaičių tų pačių matmenų ląstelėse, tolygiai padengiančiose Žemės paviršių. Mūsų ištrauką galima gauti kaip „GeoTIF“ failą - TIF vaizdo formato variantą, kuris apima geografinę informaciją. „GeoTIF“ skaityti galime naudoti „open_rasterio“ () metodą iš „xarray“ paketo:

Tai nuskaito duomenis į „DataArray“ objektą:

„xarray“ yra paketas, skirtas dirbti su daugialypėmis etiketėmis pažymėtomis masyvomis. Išpakuokime tai: galime naudoti ne tik dviejų matmenų masyvus, kaip lentelėje su eilutėmis ir stulpeliais, bet su savavališku jų skaičiumi kiekvieną iš šių matmenų „stebi“ indeksas, leidžiantis lengvai ir efektyviai manipuliuoti. „Xarray“ sistemoje šie indeksai vadinami koordinatėmis ir juos galima gauti iš „DataArray“ per atributą „coords“:

Įdomu tai, kad mūsų paviršius turi trys matmenys: x, y ir juosta. Pirmieji stebėjo platumą ir ilgumą, kurią apima kiekviena mūsų populiacijos tinklelio ląstelė. Trečioji turi vieną vertę (1) ir šiame kontekste ji nėra labai naudinga. Tačiau lengva įsivaizduoti kontekstus, kur būtų naudinga trečioji dimensija. Pavyzdžiui, optinis spalvotas vaizdas gali turėti tris juostas: raudoną, mėlyną ir žalią. Galingesni jutikliai gali pasiimti papildomas juostas, tokias kaip artimosios infraraudonosios (NIR) ar net radijo juostos. Arba laikui bėgant matuojamas paviršius, kaip ir geokubai, kuriuos aptarėme 2 skyriuje, turės juostas kiekvienam laiko momentui, kuriuo matuojamas laukas. Taigi geografiniame paviršiuje bus du matmenys, fiksuojantys langelių vietą (x ir y), ir bent viena juosta, įrašanti kitus matmenis, susijusius su mūsų duomenimis.

Objekte „xarray.DataArray“ yra papildomos informacijos apie reikšmes, saugomas atribute attrs:

Tokiu atveju matome, kad tai apima informaciją, reikalingą masyvo pikseliams paversti vietomis Žemės paviršiuje (pvz., Transformacija ir crs), skiriamąją gebą (250 metrų x 250 metrų) ir kitus metaduomenis, kurie leidžia mums geriau suprasti iš kur gaunami duomenys ir kaip jie saugomi.

Taigi, „DataArray“ turi tris aspektus:

Bendra operacija bus tai sumažinti tik iki dviejų geografinių. Tai galime padaryti su sel operatoriumi, kuris leidžia mums pasirinkti duomenis pagal jų koordinačių vertę:

Taigi gautas objektas yra dvimatis masyvas. Panašiai kaip geografinėse lentelėse, galime greitai suskaičiuoti vertes savo duomenų rinkinyje:

Tai suteikia mums pirmąją gyventojų pasiskirstymo San Paulo regione apžvalgą. Tačiau jei apžiūrėsime toliau, matysime, kad žemėlapyje yra neigiami skaičiai! Kaip tai galėtų būti? Kaip paaiškėjo, trūkstami duomenys tradiciškai paviršiuose saugomi ne kaip savo klasė (pvz., NaN), bet su neįmanoma verte. Grįžę į aukščiau pateiktą attrs spaudinį, galime pamatyti, kaip atributas „nodatavals“ nurodo trūkstamus duomenis, įrašytus su -200. Atsižvelgdami į tai, galime naudoti metodą kur (), kad pasirinktume tik tas reikšmes, kurios yra ne -200:

jupyter nbconvert - į nešiojamąjį kompiuterį - vykdyti subtitrus.ipynb cp ../book/infrastructure/logo/favicon.ico tmp_book / favicon.ico jupyter-book build tmp_book –builder latex sed -e's / section / chapter / g ' -e 's / subsection / section / g' -e's / subsubsection / subsection / g 'tmp_book / _build / latex / python.tex & gt tmp_book / _build / latex / python_1.tex jupyter nbconvert –į nešiojamąjį kompiuterį –Vykdyti latekso.ipynb cp infrastruktūrą / crc / Krantz_AuthoredBook_v1.18 / Krantz_AuthoredBook_v1.18 / krantz.cls tmp_book / _build / latex / krantz.cls cp tmp_book / *. Tex tmp_book / _build / latex /. cp tmp_book / _build / latex / part1.tex tmp_book / _build / latex / part1.md pandoc tmp_book / _build / latex / part1.md -o tmp_book / _build / latex / part1.tex cp tmp_book / _build / latex / part2.tex tmp_book / _build / latex / part2.md pandoc tmp_book / _build / latex / part2.md -o tmp_book / _build / latex / part2.tex cp tmp_book / _build / latex / part3.tex tmp_book / _build / latex / part3.md pandoc tmp_book / _build / latex / part3.md -o tmp_book / _build / latex / part3.tex Spalvų juosta dabar atrodo protingesnė ir rodo tikras skaičiuoja, o ne įtraukia trūkstamas duomenų vietos rezervavimo vertes.

Erdviniai grafikai¶

Erdviniai grafikai saugo ryšius tarp objektų per erdvę. Šie ryšiai gali kilti iš geografinės topologijos (pvz., Vienodumas), atstumo ar sudėtingesnių aspektų, tokių kaip sąveikos srautai (pvz., Važinėjimas į darbą, prekyba, ryšiai). Palyginti su geografinėmis lentelėmis ir paviršiais, erdviniai grafikai yra gana skirtingi. Pirma, daugeliu atvejų jie neužfiksuoja tam tikro reiškinio matavimų, bet sutelkia dėmesį į tai jungtys, saugant santykius tarp objektų, kai juos palengvina (arba trukdo jų nebuvimas) erdvė. Antra, dėl šio reliacinio pobūdžio duomenys yra organizuojami labiau nestruktūruotai: nors vienas pavyzdys gali būti prijungtas tik prie kito pavyzdžio, kitas gali rodyti kelias nuorodas. Tai visiškai prieštarauja geografinėms lentelėms ir paviršiams, kurie abu turi aiškiai apibrėžtą struktūrą, formą ir matmenis, kuriuose tvarkomi duomenys. Šios ypatybės paverčiamas kitokiu „Python“ duomenų struktūrų rinkiniu. Skirtingai nuo ankstesnių, kuriuos matėme, erdvinėms schemoms pateikti yra skirtingos duomenų struktūros, kurių kiekviena yra optimizuota skirtingiems kontekstams. Vienas iš tokių atvejų yra erdvinių jungčių integravimas į statistinius metodus, tokius kaip tiriamoji duomenų analizė ar regresija. Tam labiausiai paplitusi duomenų struktūra yra erdvinių svorių matricos, kurioms skiriame kitą skyrių.

Šiame skyriuje trumpai apžvelgiame kitokį erdvinių grafikų vaizdavimo būdą, kuris yra daug artimesnis matematinei grafiko sampratai. Grafikas sudarytas iš mazgai kuriuos sieja kraštai. Erdviniame tinkle mazgai gali atstovauti geografinėms vietoms, taigi ir turėti specifinę vietą, kraštai gali atstovauti geografinius kelius tarp šių vietų. Tinklai reikalauja abiejų mazgai ir kraštai išanalizuoti jų struktūrą.

Iliustracijai remsimės osmnx biblioteka, kuri gali pateikti užklausą duomenims iš „OpenStreetMap“. Pvz., Ištraukiame gatvėje pateiktą Yoyogi parko grafiką šalia ankstesnių Tokijo duomenų:

Aukščiau pateiktas kodo fragmentas siunčia užklausą „OpenStreetMap“ serveriui, kad gautų duomenis. Atkreipkite dėmesį, kad langelis aukščiau reikalauja interneto ryšys su darbu. Jei dirbate su knyga be ryšį, duomenų aplanke yra talpinama schemos versija, kurią galima skaityti taip:

Kai duomenys bus grąžinti į osmnx, jie bus apdoroti į „Python“ grafiko diagramą:

Galime greitai patikrinti grafiko struktūrą, naudodami plot_graph metodą:

Gautas grafo objektas yra „MultiDiGraph“ iš „networkx“, „Python“ parašyta grafikų biblioteka. Čia esantis grafikas saugomas kaip 106 mazgų (gatvių sankryžų) rinkinys:

ir 287 kraštai (gatvės), kurie juos sujungia:

Kiekvienam iš šių elementų galima pateikti užklausą, kad gautumėte daugiau informacijos, pvz., Mazgo vietą ir ID:

Briaunos savybės:

Arba kaip skirtingi grafiko komponentai yra susiję vienas su kitu. Pavyzdžiui, kokie kiti mazgai yra tiesiogiai prijungti prie mazgo 1520546819?

Taigi tinklus lengva atvaizduoti „Python“ ir tai yra viena iš trijų pagrindinių geografinių duomenų mokslo duomenų struktūrų.


Projektas: #EUreferendum & # 8211 3 savaitės nuomonė

Tu geriausia perskaityti tai prieš žemiau pateiktą informaciją, kad įsitikintumėte, jog viskas yra prasminga ir suprantate, kaip buvo pasiekta toliau pateiktų dalykų.

3 savaitė = gegužės 29 d., Sekmadienis, birželio 4 d., Šeštadienis

Kokia buvo „Twitter“ nuomonė apie būsimą JK ES referendumą 3 savaitę? Pirmąją ir antrąją savaitę atrodė, kad „# 8220leave & # 8221“ laimėjo & # 8230

3 savaitė yra tendencijos tęsinys: tie, kurie išreiškia savo nuomonę tokiu būdu, kad paskatintų mano kriterijus, vis dar viršija tuos, kurie, atrodo, nori & # 8220 likti & # 8221:

  • Palikite = 3 291 tweet 3 savaitę (3 429 tweet 2 savaitę ir 2566 1 savaitę)
  • Lieka = 1 258 tweets 3 savaitę (1 103 tweets 2 savaitę ir 727 1 savaitę)

Tačiau kiekvieną savaitę tai rodo, kad „# 8220leave & # 8221“ tweet'ai sumažėjo 4%, palyginti su 2 savaite, tačiau vis tiek 28% padidėjo 1 savaitę. & # 8220Remain & # 8221 tweets padidėjo 14%, palyginti su 2 savaitė ir 73%, palyginti su 1 savaite.

Ar tai gali būti tylesnės & # 8220 lieka & # 8221 dauguma ženklo, kuris pradeda reikšti savo nuomonę, nes hiperbolė tampa kraštutinė, o laikas vis labiau siaurėja, nes tai laikoma didžiausiu sprendimu kartose?

Žemiau rasite laikiną sukimo momento žemėlapį kartu su pagrindiniu erdviniu šilumos žemėlapiu, parodančiu apytikslę diskusijų geografiją. Iš 4549 tweet'ų galėjau georeferencijuoti 2 011, naudodamas „CartoDB & # 8217s“ įmontuotus georeferencinius įrankius (44%).

Akivaizdu: tai nėra skirta bandyti ir kaip nors nuspėti referendumo rezultatą.


Kaip pridėti liniją prie „CartoDB“ žemėlapio? - Geografinės informacinės sistemos

Iš pradžių parašyta 2014 m. Rugpjūčio 9 d
Paskutinį kartą atnaujinta 2016 m. Vasario 15 d

Aš (Chrisas Henrickas) turiu profesinį išsilavinimą kartografijos ir geografinių informacinių sistemų srityje. Visai neseniai konsultavausi žiniatinklio kūrimo, duomenų vizualizavimo ir interaktyvaus žiniatinklio žemėlapių kūrimo srityje. Padedu kartu organizuoti NYC skyrių „Maptime“, savanorių grupę, kuri mėgsta nemokamai mokyti žemėlapių technologijos plačiajai visuomenei.

Apie ką ši pamoka?

Duomenų kartavimas interaktyviai internete, naudojant nemokamą atvirojo kodo programinę įrangą „CartoDB“.

Pirmiausia žmonės, kurie naujokai kuria interaktyvius žemėlapius, kurie gyvena internete. Jei turite GIS ar kartografijos patirties, kai kurie iš šių pamokų gali būti apžvalga, todėl prašau plikas su manimi.

Galite peržiūrėti pristatymo skaidres, kurias paprastai pateikiu su šia pamoka. Norėdami pereiti tarp skaidrių, naudokite klavišus ◀ ▶.

Štai keletas pavyzdžių, kaip žmonės naudojo „CartoDB“ kurdami interaktyvius žemėlapius:

„CartoDB“ yra programinė įranga kaip paslauga (SaaS), skirta vizualizuoti ir analizuoti geoerdvinius duomenis internete. Tai yra bene patogiausias būdas interaktyvius žemėlapius kurti žiniatinklyje su savo duomenimis. „CartoDB“ leidžia lengvai pritaikyti kartografiją per intuityvią vartotojo sąsają, taip pat išplėstinę geoerdvinių duomenų analizę naudojant SQL („Structured Queried Language“) ir „Post-GIS“.

Prieš „CartoDB“ ir kitą atvirojo šaltinio žiniatinklio kartografavimo programinę įrangą, pvz., „Plytelių malūną“, buvo kuriamos žiniatinklio žemėlapiai, kuriuose reikėjo paleisti jūsų pačių žiniatinklio serverį ir įdiegti serverio ir duomenų bazės programinę įrangą. Tai gali būti nepaprastai sunku nebent buvote patyręs kompiuterių programuotojas / internetinių programų kūrėjas. Puikus dalykas, susijęs su „CartoDB“, yra tai, kad jis tvarko visus serverio dalykus jums! Pavyzdžiui, kiekvieną kartą, kai importuojate duomenis į „CartoDB“, duomenys automatiškai saugomi duomenų bazėje, kurioje yra geoerdvinis galimybes.

Geotelinė? Palauk, kas čia.

Geoerdviniai duomenys nurodo duomenis, turinčius geometrinį komponentą pagal vietą. Dauguma geoerdvinių duomenų yra vektorinis formatas ir yra saugomas kaip taškai, linijos ir daugiakampiai, kurių geometriniai atributai turi nuorodas į fizines vietas realiame pasaulyje, pavyzdžiui, platumos ir ilgumos koordinates. Naudojant geografinę informacinę sistemą, geoerdviniai duomenys gali būti naudojami fizinėms ir kultūrinėms savybėms atspindėti. Šie duomenys gali būti kartografiškai atvaizduojami ir erdviškai analizuojami, siekiant išspręsti problemas ir modeliuoti aplinką.

Geometrijos tipų pavyzdžiai:

Gatvių adresų sąrašas, kuris tada gali būti georeferenciniai (suderinta) prie atskirų platumos ir ilgumos koordinačių (taškų) porų, pavyzdžiui, visų NYC valstybinių mokyklų vietos:

Tokios funkcijos kaip upės ir upeliai ar kelių tinklai gali būti saugomos ir pateikiamos kaip linijos:

Niujorko miesto sienos (arba kitos administracinės vyriausybės ribos, tokios kaip valstijos, provincijos ir šalys) gali būti saugomos ir pateikiamos kaip daugiakampiai:

Aukščiau pateikti duomenų tipai naudojami perteikti žemėlapio plytelės kaip tuos, kuriuos matote „OpenStreetMap“, „Google Maps“, „Bing“, „Map Quest“ ir kt. Pavyzdžiui, tai yra skirtingų tiekėjų žemėlapių plytelės toje pačioje San Francisko vietovėje:

Žemėlapio plytelės yra 256 x 256 pikselių vaizdai, lygiuojami tinkleliu, kaip ir madinga. Jie yra suskaidomi tokiu būdu, kad mastelio keitimas ir panoraminis rodymas žiniatinklio žemėlapio vartotojui būtų sklandus ir sklandus. Pateikiami tik tie vaizdai, kurie yra žemėlapio srityje ir už jos ribų. Serveriui liepiama pateikti kaimynines plyteles ir talpykla juos taip, kad, paslinkus į naują sritį, sąveika būtų sklandi.

Šios pamokos tikslais žemėlapio plytelės sudaro mūsų pagrindo žemėlapis kad galime perdengti pasirinktiniai duomenys ant viršaus. Nors dar daugiau, mes galime analizuoti mūsų erdvinius duomenis su „CartoDB“. Abu šie sugebėjimai yra tie, kur įdomu :)

Geoerdvinių duomenų analizė naudojant PostGIS

„PostGIS“ (kartu su „PostgreSQL“) yra atviro kodo duomenų bazių technologija, leidžianti atlikti „CartoDB“ duomenų geoerdvinę analizę. Kodėl mes norėtume tai naudoti kitų tipų GIS programinėje įrangoje?

  • Pakartotinas: Galite rašyti savo darbo eigą, kuri puikiai tinka norint palikti savo darbą.
  • Jis remiasi SQL: Jei jau žinote SQL, tai yra lengvas būdas atlikti GIS analizę.
  • Duomenis galite pateikti dinamiškai: Jei turite serverį, kuris gali sugadinti „PostGIS“ užklausą ir grąžinti JSON, galite atlikti dinamines erdvines užklausas savo programose. pvz. - Raskite visus taškus šalia manęs.

Šioje pamokoje aptarsime keletą pagrindinių „PostGIS“, tačiau jei jus domina, čia galite rasti kitą įvadinę pamoką apie „PostGIS“ naudojimą „CartoDB“. „CartoDB“ žemėlapių akademijoje taip pat yra daugybė puikių pamokų

Įvadas į „CartoDB“ informacijos suvestinę

  1. Sukurkite nemokamą sąskaitą ir prisijunkite prie „CartoDB“. Prisijungę ir peržiūrėję prietaisų skydelį, spustelėkite parinktį Duomenų biblioteka (viršutiniame dešiniajame prietaisų skydelio kampe). Eikite į 5 puslapį, pasirinkite „Apgyvendintų vietų“ duomenų rinkinį ir tada informacijos suvestinės viršuje spustelėkite prijungti duomenų rinkinį. Tai importuos aplankytų vietų duomenų rinkinį į jūsų paskyrą.

Kai duomenys bus importuoti, pažvelkite į „adm0cap“ lauką stalo vaizdas. Šiame lauke saugomi 0 ir 1, pastarieji reiškia, kad vieta yra šalies sostinė.

Yra du būdai, kaip patikrinti jūsų duomenis „CartoDB“:

Lentelės vaizdas: Rodomi stulpelių pavadinimai ir eilutės panašiai kaip skaičiuoklė. Šiame duomenų rinkinyje kiekviena eilutė reiškia tašką. Tačiau eilutės taip pat gali atspindėti kitus geometrijos tipus, atsižvelgiant į jūsų duomenis.

  • Pažvelkite į tai, kas yra vienos iš langelio stulpelyje the_geom. Turėtumėte pamatyti geografinės ir ilgumos koordinates.

Žemėlapio vaizdas: Leidžia vizualiai tikrinti mūsų duomenis, pvz .: mastelio keitimas ir panoraminis rodymas interaktyviame internetiniame žemėlapyje. Čia galime pakeisti pagrindinio žemėlapio stilių, naudoti Vizualizacijos vedlys šoninėje juostoje suformuokite savo duomenis ir pridėkite sąveiką, pvz., iššokančiuosius langus, rodančius lentelės rodinio stulpelių vertes.

Vizualizacijos vedlyje pabandykite perjungti duomenų stilių į kategorijos rodinys, pasirinkite stulpelį „adm0cap“ ir pabandykite priskirti įvairius vaizdų žymeklių tipus pagal „adm0cap“ vertę. Atminkite, kad 1 reiškia, kad vieta yra šalies sostinė.

Pastaba: Taip pat galite įkelti pasirinktinius vaizdus, ​​kurie bus naudojami kaip žymekliai.

Žemėlapio leidyba / bendrinimas:

Viršutiniame dešiniajame kampe spustelėdami mygtuką Vizualizuoti, galime sukurti Vizualizacija. Atlikite tai ir suteikite vizualizacijai tokį pavadinimą kaip „Mano pirmasis vizas“.

Kai sukursime vizualizaciją, ji paveldės stilius, kuriuos nustatėme iš žemėlapio rodinio.

Vizualizacijos veikia susiejant su jūsų duomenų lentelėmis. Atminkite, kad jei grįšime prie importuotų duomenų lentelės tikrinimo ir čia pakeisime stilius, atlikome vizualizaciją su tais duomenimis nedarys būti atnaujinta pagal tuos stilius. Tačiau jei jūs pakeisite šių lentelių reikšmes, atitinkamą vizualizaciją valios būti paveiktam.

Pastaba: visi vizualizacijos pakeitimai (duomenys ar stilius) bus atnaujinti realiuoju laiku visiems, kurie žiūri mūsų viz!

Atkreipkite dėmesį į skirtumus tarp stalai ir vizualizacijos informacijos suvestinėje. Pirmojoje pateikiami duomenų rinkiniai, kuriuos importavote į savo paskyrą, antrieji - žemėlapiai, kuriuos sukūrėte su savo duomenimis, ir gali pasirinkti bendrinti / skelbti internete.

Pastaba: Viena vizualizacija gali susieti su keliomis lentelėmis sluoksniai. Tai yra pagrindinė kartografinio dizaino sąvoka, o sluoksnių tvarka yra svarbi.

Ištrinkite apgyvendintų vietų duomenų rinkinį ir vizualizaciją, kurią atlikome anksčiau, nes mums reikės saugyklos vietos, kad galėtume judėti į priekį su kita mokymo programos dalimi naudodami nemokamą paskyrą.

Importuokite JAV apskritis, 1979 m. - pateikite duomenų rinkinį (šiuo metu duomenų bibliotekos 5 puslapyje)

Pažvelkime į šiuos duomenis. Spustelėkite vieną iš langelių, esančių stulpelyje „the_geom“. Turėtumėte pamatyti kažką panašaus:

Štai kaip „CartoDB“ saugo geometriją a daugiakampisarba daugiakampių grupė. Kiekviena iš tų koordinačių nurodo a mazgas per vieną daugiakampį. Daugiakampiai yra naudingi grupuojant daugybę geografinių objektų, pvz., Salų, priklausančių vienam politiniam vienetui, pavyzdžiui, valstybei ar provincijai.

Dabar pereikite prie Žemėlapio vaizdas norėdami pamatyti, kaip daugiakampiai yra perdengti mūsų žemėlapyje.
Vizualizacijos vedlyje:

Pabandykite spustelėti kur nors žemėlapyje. Atkreipkite dėmesį į iššokantįjį langą su tokiu pranešimu: "Nepasirinkote jokių laukų, kurie būtų rodomi vidiniame langelyje." Spustelėkite nuorodą Pasirinkti laukus ir pastebėkite, kad šoninė juosta dešinėje pereis į Informacijos langas skydelyje. Čia galite sukonfigūruoti duomenis, kurie bus rodomi iššokančiuose languose, arba tai, ką skambina „CartoDB“ Informacija „Windows“.
Čia galite:

  • įjunkite arba išjunkite bet kurį stulpelį, kad reikšmės būtų rodomos informacijos lange.
  • redaguoti stulpelio pavadinimą, kuris bus rodomas informacijos lange (pastaba: tai nepakeis jūsų faktinių duomenų stulpelio pavadinimo).
  • pakeisti „Windows“ informacijos stilių.
  • pritaikykite juos HTML ir CSS.

Pabandykime pakeisti duomenų grafinį stilių naudodami vizualizavimo vedlį. Pakeiskite stilių iš „paprastas“ į „choropleth“. Atkreipkite dėmesį, kaip mūsų daugiakampio duomenys yra automatiškai koduojami spalvomis, atsižvelgiant į duomenų vertes, šiuo atveju bendrą populiaciją. Tačiau čia yra problema: gyventojų skaičiavimas pagal apskritis sukuria klaidingą įspūdį mūsų žemėlapio žiūrovui. Mums reikia normalizuoti duomenis padalijant apskrities žmonių skaičių iš geografinės vietovės.

Laimei, mūsų duomenys šią vertę jau įtraukė į stulpelį „pop_sqkm“. Norėdami parodyti, kaip galėtumėte patys apskaičiuoti, atliksime šiuos veiksmus SQL skydelis:

Tai yra atviro kodo technologijos naudojimo pavyzdys „PostGIS“ erdviškai išanalizuoti mūsų duomenis. Naudodami „PostGIS“ galime apskaičiuoti tokias vertes kaip atstumas ir plotas, kai įvairūs erdviniai duomenų rinkiniai domina vienas kitą, taip pat eksportuoti duomenis į skirtingus duomenų formatus, pvz., GeoJSON arba Formos failas.

Teminio taško žemėlapio sudarymas

Importuokite „Tornado“ istorinių duomenų rinkinį 1950 - 2013 (šiuo metu duomenų bibliotekos 3 puslapyje).

Patikrinkite duomenis. Nes visi duomenys buvo saugomi CSV formatu duomenų tipai yra saugomi kaip stygos (eilutė yra duomenų tipas, skirtas tekstui, pvz., sakiniui ar žodžiui, saugoti). Norint naudoti skaitinis ir data Šių duomenų reikšmes turime konvertuoti šiuos stulpelius į atitinkamus duomenų tipus spustelėdami mažą morką šalia stulpelio pavadinimo, tada spustelėdami "Keisti duomenų tipą".
Taigi dabar mes:

  • konvertuoti žalos stulpelio duomenų tipą į numeris.
  • konvertuoti datos stulpelio duomenų tipą į data. Norint atlikti erdvinę analizę, svarbu turėti teisingus duomenų tipus. Jei PostGIS mano, kad mūsų duomenų tipas yra eilutės, kai jie iš tikrųjų yra skaičiai ar datos, mūsų analizė neveiks!

Now in the map view use the Visualization Wizard to show our data's damage value in different methods such as Bubble Map, Intensity, Density Map, etc.

Take a look at the Filters panel, show how filters are translated into SQL by viewing the SQL Panel after applying a filter.

Back in the "Map View" try adding labels to our map. Notice how the CartoCSS panel is updated. If we'd like, we can customize our map styles using CartoCSS. This gives us more fine tuning of our map's style than we can get with the Visualization Wizard.

Animating Geospatial Data with Torque

Use the same tornado data from above.

Try out the Torque option in the Visualization Wizard by selecting the date column as the temporal value to animate.

Counting Points in Polygons

Let's combine both the Counties and Tornadoes datasets into a new visualization. Order the layers so that the tornado data is on top of the county data. This is interesting but what if we wanted to style our counties by the number of tornados each has within its borders?

We can use PostGIS to count the number of tornadoes per county. Create a new column called tornadoes_by_county in the us_counties table and give it a numeric data type.

Then in the SQL Panel run the following query (this assumes your tornado data table is named tornadoes )

In the visualization wizard for the us_counties layer try changing the category to choropleth and using the column tornadoes_by_county to style the map.

That's it folks, hope you had fun! Žr Resources section below for further learning.


Intro to Mapping with CartoDB

About a year ago, I posted a brief tutorial on ESRI’s StoryMaps, a lightweight ArcGIS web mapping platform. This time around, I want to share a similar tutorial on the CartoDB platform. Whereas StoryMaps is a very minimal mapping platform designed to let users craft a narrative around a simple dataset, CartoDB provides a more robust set of mapping tools to display multiple datasets, increase customizability, and in general, do more with your data.

I first started playing with CartoDB earlier this year while working on a project aimed at visualizing the impacts of the CUNY Grad Center across NY and the world. You can view one of the maps for this project, created by Steve Romalewski: Where Are GC Students Teaching.

CartoDB is a web-based open source mapping platform, which can be installed on your own server, or used as a cloud-based mapping service through CartoDB.com. CartoDB.com offers different price tiers, including a free tier for lightweight mapping with small datasets.

For this tutorial, we will be using the free tier service to create a really simple map that will teach you the basics of importing data, applying different visualizations, using filters, and creating data interactivity.

Tutorial Data

GIS data and mappable datasets are widely available across the web. If you are dealing with New York, one great resource is the NYC Department of City Planning Bytes of the Big Apple website, which contains downloadable datasets related to administrative and planning boundaries. If you want to incorporate US Census Data, the easiest way to get recent data is by using the TIGER datasets, although they aren’t available for every geography and time period. In this tutorial, we will be using a dataset that I pulled from the NYPD Stop, Question and Frisk (aka Stop and Frisk) database.

To simplify the data import process, I created a slightly modified dataset based on the 2014 SQF data by converting the geocoordinates embedded in the files (based on the NY-Long Island state plane system) to a format that CartoDB natively understands (for details on this process, see note 1 below).

Most datasets will have metadata associated with them. This data is no different. You can download the metadata descriptors for this dataset here: NYPD Stop Question Frisk Database File specifications

The first sheet in the file specification spreadsheet describes each column in the dataset. The second sheet contains the database code values used within each column (e.g., Y=Yes, N=No).

Sign-up on CartoDB.com

The first thing you will need to do is to create an account on CartoDB.com.

Once you’ve verified your account, log in and you should be taken to your personal CartoDB dashboard, where you can watch their snazzy screencast showing you how to get started. Below the video is a place to import your first dataset, which is where we begin with the next step.

Import Data

Once you’re logged in to CartoDB.com, click the “Create your first table” button near the bottom of the page and select the .zip file containing the NYPD SQF data that you just downloaded.

Play with the Data

The best way to learn CartoDB is by playing around and seeing what you can do! Click on the “MAP VIEW” tab at the top of the page to visualize the data.

Click the “Wizards” button on the toolbar along the right edge of the screen (the paintbrush). Try out the different types of maps, play with the options, select different columns to display, etc. Refer to the metadata file specifications linked above to gain a better understanding of what each data column represents and what the codes mean (the second tab in the spreadsheet).

Change the Visualization

Now that you’ve explored the data a bit, let’s set the visualization so that we’re on the same page. Select “Heatmap” from the visualization wizard. In marker size, select 𔄞”, opacity 𔄘.5”, not animated, and resolution 𔄚”. These settings give a nice balance between data resolution while maintaining a meaningful heatmap effect.

Filter the Data

With large datasets, it’s often helpful to filter the data so that you get a more precise understanding of different phenomena. In CartoDB, you have two options. You can filter data using SQL queries (the SQL button on the toolbar), or the more basic filter tool (the “filters” button at the bottom of the toolbar).

Click the “filters” button. In the dropdown menu, select the “arstmade” (Was an arrest made?) column. This will display a card that allows you to turn on or off datapoints corresponding to different values. If you uncheck the “Y” value, the map only displays SQFs where the person was NOT arrested (only “N” values are displayed). Notice that a huge majority of the SQFs resulted in no arrest.

Next, click the “+” button below the first filter to add a second filter column. Select “forceuse” (reason for the use of force) for the second filter. Uncheck the “null” values (no reason given, we’ll assume this means no force was used see note 2 below). There should only be a fraction of the original points left. But it’s a bit interesting that there are still quite a few incidents where force was used, yet no arrest was made. Also notice how a lot of those seem to be clustered around the central parts of the Bronx…

Make the Map Interactive

Next we will add info windows to the data that pop up when you hover the mouse over a datapoint or click on it.
First, we need to change the map type to one that shows discrete data points. Go back to the wizard tab, select “Category”, then set the following options: Column=”detailCM” (suspected crime code) Marker fill=5, 0.4 Marker stroke=0,1 “Y”/”N”=colors of your choice.

Next, go to the “infowindow” tool item, then click the “Hover” tab. Pick one or more columns to display when the mouse hovers over a data point. I chose “crimesusp”, “contrabn”, “arstmade”. Now move your mouse over a data point on the map and it should display a window with the selected items. You can do the same for the “Click” tab, except those will display when the data point is clicked. Hover is good for quick data, while click is more appropriate for detailed information. I added “forceuse”, “explnstp”, and “frisked” columns for the click window.
In both the Hover and Click tabs, you can rearrange the displayed items by dragging them up and down the list.

Add a Legend and Publish

The next thing we will do is add a legend to the map so that people viewing it know what the map symbols represent. Click on the “legends” tool item, then select “custom” from the drop-down menu. This will allow us to customize the category names since the default crime codes aren’t very reader-friendly. Referring back to the metadata spreadsheet, we can fill in descriptors for each of the top crime codes reported as justification for the SQF incidents. For example, 󈬄” is the code for “CPW”, or criminal posession of a weapon, which is the top reason for SQFs. Click on the 󈬄” in the first row and change the text to something human-readable, like “Criminal Posession of a Weapon”. Do the same for the rest of the items.

Finally, click on the “Visualize” button at the top of the page. This gets it ready to be published. You should see a new “Options” button in the bottom left corner, where you can turn on or off various features such as the search box and title element. There are also buttons along the top of the map that let you add elements such as text boxes or annotations, and preview what your map will look like when viewed on a mobile device.

Now that your map is pretty, it’s ready to share! You can use the “Share” button in the upper right corner to generate a link to send, or you can embed the map within another website by using the embed code. Note that the embed uses iframes, which can’t be used on some WordPress sites for security reasons, but in these cases, I suggest using a static image of the map and linking that to the CartoDB page for your map (like I’ve done below).

Click the map to explore the data

Next Steps

Now that you’ve created your first CartoDB map, there are plenty of other things you can do with it, such as adding additional data layers to your existing map, or duplicating the map and highlighting different aspects of the data using the other map types. If you are familiar with SQL, you can also use the SQL tool to do some basic data manipulation, perform joins, and do some basic calculations and analyses with your data sets. CartoDB also allows you to fine-tune customize the appearance of your maps using a special version of CSS with selectors that link to your data, however I will leave it to you to play with this on your own.
You can also do things like geocoding in CartoDB, which allows you to convert street addresses into points on a map, but the free account limits the number of items you are allowed to process. You could, however, geocode data in another program like Google’s Fusion Tables or QGIS, then import it into CartoDB for the visualization.
While CartoDB is a great tool for visualizing data, it’s not really meant to be a fully featured GIS system. When you are ready to move on to more advanced GIS techniques like buffering, intersects, raster analysis, or spatial statistics, I suggest checking out the open source QGIS package.

Note 1: Converting the NYPD’s stop-and-frisk data to a format usable in CartoDB

I used the free and open source QGIS package to import the raw CSV data from the NYPD website. Start by opening the Layer > Add Layer > Add Delimited Text Layer… Menu. Browse for your downlaoded data. You might need to unzip the datafile before selecting it in QGIS. Next, select the x- and y-coordinate fields from the dropdown menus (see screenshot) in the case of the SQF dataset, these are “xcoord” and “ycoord”, respectively.


Click “OK”, then close the warning box (this is because a bunch of data doesn’t have x-y coordinates associated with them). Then you will need to select the coordinate system that corresponds to your data. In this case, it appeared that the x- and y-coordinates were in the state plane system, so I made a guess that they used the New York-Long Island State Plane system (“NAD_1983_StatePlane_New_York_Long_Island_FIPS_3014_Feet”). Finally, right-click the newly imported layer, select Save As…, select “ESRI Shapefile” or CSV or any other format compatible with CartoDB, click “Browse” to give your file a name and location, then click “OK”. If you save it as an ESRI Shapefile, you’ll need to add all of the files (.dbf, .prj, .qpj, .shp, .shx) to a single .zip file. If you’re on OS X, just select them all in a finder window, right-click, and select “Compress 5 items”. The resulting Archive.zip is the file you will upload to CartoDB.

Note 2: Use of force and Using SQL Queries

In the section where I explain applying filters, I used the “forceuse” column as a proxy for determining whether or not force was used in a particular stop. The dataset actually has several columns that indicate whether or not force was used, but the filter tool built into CartoDB doesn’t really allow us to capture all of the incidents where force was applied using those columns. The problem is that the filter tool always applies an “AND” operator between multiple filters, and not an “OR”. We want to see all the incidents where force was used, which means the use of physical force-hands, OR physical force-weapon drawn, OR physical force-etc. For these types of filters, we need to use the SQL query tool, which allows much finer-grained control over which data gets included in the active dataset.
Click on the “SQL” toolbar item. Where says “Custom SQL query”, replace the existing text with this code snippet:

When you click “Apply query”, you should see a much smaller dataset. These are the incidents where physical force was reported (the pf_hands, pf_wall, pf_etc. columns), but where the justification (forceuse column) was not reported. Notice they’re almost all clustered in a subset of precints in the Bronx, Flatbush, and East Harlem?
If you change the last part of that query, the and forceuse is null portion, to instead read or forceuse is not null , you will have a dataset with all of the incidents where the use of physical force was reported, including those instances where no justification was given.


Anonymous Maps allows you to instantiate a map given SQL and CartoCSS. It also allows you to add interaction capabilities using UTF Grid.. Alternatively, you can get the data for the map (geometry and attributes for each layer) using vector tiles (in which case CartoCSS is not required).

Instantiate

Apibrėžimas
Params
Response

Attributes apibūdinimas
layergroupid The ID for that map, used to compose the URL for the tiles. The final URL is: https://.carto.com/api/v1/map////.png
updated_at The ISO date of the last time the data involved in the query was updated.
metaduomenys Includes information about the layers.
cdn_url URLs to fetch the data using the best CDN for your zone.

Improved response metadata

Originally, you needed to concantenate the layergroupid with the correct domain and the path for the tiles. Now, for convenience, the layergroup includes the final URLs in two formats:

  1. Leaflet’s urlTemplate alike: useful when working with raster tiles or with libraries with an API similar to Leaflet’s one. : useful when working with Mapbox GL or any other library that supports TileJSON.

Pavyzdys

Response

Map Tile Rendering

Map tiles are used to create the graphic representation of your map in a web browser. Tiles can be requested either as pre-rendered rastras tiles (images) or as vektorius map data to be rendered by the client (browser).

Raster: If a tile is requested as a raster image format, like PNG, the map will be rendered on the server, using the CartoCSS styles defined in the layers of the map. It is necessary that all the layers of a map define CartoCSS styles in order to obtain raster tiles. Raster tiles are made up of 256x256 pixels to avoid graphic quality issues tiles should be used unscaled to represent the zoom level (Z) for which they are requested. In order to render tiles, data will be retrieved from the database (in vector format) on the server-side.

Vektorius: Tiles can also be requested as MVT (Mapbox Vector Tiles). In this case, only the geospatial vector data, without any styling, is returned. These tiles should be processed in the client-side to render the map. In this case layers do not need to define CartoCSS, as any rendering and styling will be performed on the client side. The vector data of a tile represents real-world geometries by defining the vertices of points, lines or polygons in a tile-specific coordinate system.

Retrieve resources from the layergroup

When you have a layergroup, there are several resources for retrieving layergoup details such as, accessing Mapnik tiles, getting individual layers, accessing defined Attributes, and blending and layer selection.

Raster tiles

These raster tiles are PNG images that represent only the Mapnik layers of a map. See individual layers for details about how to retrieve other layers.

Mapbox Vector Tiles (MVT)

Mapbox Vector Tiles (MVT) are map tiles that transfer geographic vector data to the client-side. Browser performance is fast since you can pan and zoom without having to query the server.

CARTO uses Web Graphics Library (WebGL) to process MVT files on the browser. This is useful since WebGL is compatible with most web browsers, include support for multiple client-side mapping engines, and do not require additional information from the server which makes it more efficient for rendering map tiles. However, you can use any implementation tool for processing MVT files.

The following examples describe how to fetch MVT tiles with a cURL request.

MVT and Windshaft

CARTO uses Windshaft as the map tiler library to render multilayer maps with the Maps API. You can use Windshaft to request MVT using the same layer type that is used for requesting raster tiles (Mapnik layer). Simply change the file format .mvt in the URL.

The following example instantiates an anonymous map with layer options:

Note: If no layer type is specified, Mapnik tiles are used by default. To access MVT tiles, specify https://.cartodb.com/api/v1/map/HASH///.mvt as the maps_api_template variable.

Patarimas: If you are using Named Maps to instantiate a layer, indicate the MVT file format and layer in the response:

For all layers in a Named Map, you must indicate Mapnik as the layer filter:

Layergroup Filter for MVT Tiles

To filter layers using Windshaft, use the following request where layers are numbered:

To request all layers, remove the layergroup filter parameter:

To filter a specific layer:

Example 1: MVT Tiles with Windshaft, CARTO.js, and MapboxGL

1) Import the required libraries:

3) Create Map Object (Mapbox):

4) Define Layer Options (CARTO):

5) Request Tiles (from CARTO) and Set to Map Object (Mapbox):

Pastaba: By default, CARTO core functions retrieve URLs for fully rendered tiles. You must replace the default format (.png) with the MVT format (.mvt).

Example 2: MVT Libraries with Windshaft and MapboxGL

When you are not including CARTO.js to implement MVT tiles, you must use the map.setStyle parameter to specify vector map rendering.

1) Import the required libraries:

3) Create Map Object (Mapbox):

Patarimas: If you are using MapboxGL, see the following resource for additional information.

Individual layers

The MapConfig specification holds the layers definition in a 0-based index. Layers can be requested individually, in different formats, depending on the layer type.

Individual layers can be accessed using that 0-based index. For UTF grid tiles:

In this case, layer as 0 returns the UTF grid tiles/attributes for layer 0, the only layer in the example MapConfig.

If the MapConfig had a Torque layer at index 1 it could be possible to request it with:


How to Use These Tiles Elsewhere

Except otherwise noted, each of these map tile sets are © Stamen Design, under a Creative Commons Attribution (CC BY 3.0) license.

We&rsquod love to see these maps used around the web, so we&rsquove included some brief instructions to help you use them in the mapping system of your choice. These maps are available free of charge. If you use these tiles, you must use this attribution:

Attribution:

And if you padaryti use these maps elsewhere, please post a tweet to @stamen!

"Isn't OSM data provided under the ODbL now?" Yes, but the data used in our Watercolor map tiles pre-dates the license change, so it remains CC BY SA for that tileset until it's refreshed.

JavaScript Libraries

To use these tiles, just include our JavaScript alongside your favorite mapping library:

Then, follow the instructions below for your preferred library:

Leaflet

Or you can use the built-in Stamen layers in the Leaflet-providers library. View the demo.

OpenLayers

OpenLayers is a hefty and featureful mapping library for use with a variety of GIS applications. Our JavaScript library is useful for older version of OpenLayers (version 2 or earlier). View the example.

For newer versions of OpenLayers, use the built-in Stamen layer source. View the demo.

Elsewhere

Instead of using our JavaScript library, you can refer to the tile URLs directly.

Many applications and libraries understand the notion of map URL templates. These are ours:

  • https://stamen-tiles.a.ssl.fastly.net/toner///.png
  • https://stamen-tiles.a.ssl.fastly.net/terrain///.jpg
  • https://stamen-tiles.a.ssl.fastly.net/watercolor///.jpg

Multiple subdomains can be also be used: https://stamen-tiles-.a.ssl.fastly.net

JavaScript can be loaded from https://stamen-maps.a.ssl.fastly.net/js/tile.stamen.js .

If you need protocol-agnostic URLs, use //stamen-tiles-.a.ssl.fastly.net/ , as that endpoint will work for both SSL and non-SSL connections.

Thank you to geocode.earth for powering our search box.

These tiles were developed by Stamen as part of the CityTracking project, supported by the Knight Foundation. Stamen continues to offer and support these map tiles and other open source tools in support of map makers everywhere.


Adding a legend¶

It is possible to enable legend for a geopandas plot by setting legend=True in the plotting parameters. If plotting the figure without a classification scheme you get a color bar as the legend item and it is easy to add a label for the legend using legend_kwds . You can read more about creating a legend via geopandas in here.

If plotting a map using a classification scheme, we get a different kind of ledend that shows the class values. In this case, we can control the position and title of the legend using matplotlib tools. We first need to access the Legend object and then change it’s properties.

You can read more info about adjusting legends in the matplotlig legend guide.


The Future of Web Maps and Mapping Tools

The future of the mapping world is looking interesting. Here are some emerging technologies that would have looked like science fiction only a few years ago:

  • Vector-Only - Using vector maps instead of raster images with D3.js brings a new world of features that are not possible using standard frameworks. MapBox is also moving in this direction, with MapBox GL, based on OpenGL.
  • 3D - Three dimensional terrain and buildings are now showing up in maps, and OpenLayers v3 ships with built-in support for Cesium.
  • GIS and spatial analysis in the web browser - Already possible using Turf. Turf is a JavaScript library that supports spatial and statistics operations, data classification, and GeoJSON data creation, all within the browser.