Daha çox

CartoDB xəritəsinə xətt necə əlavə olunur?

CartoDB xəritəsinə xətt necə əlavə olunur?


CartoDB redaktorundan istifadə edərək həndəsələrin əlavə edilməsi və düzəldilməsi ilə bağlı CartoDB təliminə əsasən, vurduğumuz zaman Xüsusiyyət əlavə edin, üç seçim ilə bir açılan qutu almalıyıq:

  • Nöqtə əlavə edin
  • Xətt əlavə edin
  • Çoxbucaq əlavə edin

Ancaq bunu tıkladığımda yalnız Nöqtə əlavə edin seçim. Digər iki seçim başqa bir yerə köçdü? Yoxsa bir sətir əlavə etməyin başqa bir yolu varmı?


Bir təbəqədə yalnız bir növ həndəsə (poliqon, xətt və ya nöqtə) ola bilər. Cədvəldə onsuz da bəzi məqamlarınız var və indi yalnız bu seçim görünür. Bütün nöqtələri silib səhifəni təravətləndirərək dəyişdirə bilərsiniz, ancaq xəritənizə fərqli həndəsələr daxil etmək istəyirsinizsə, sətirlərlə yeni bir cədvəl yaratmalı və əvvəlki cədvəlinizə yeni bir qat kimi əlavə etməlisiniz.

Üç qat istifadə edərək xəritədə mövcud üç geometriyaya sahib ola biləcəksiniz.


CartoDB xəritəsinə xətt necə əlavə olunur? - Coğrafi İnformasiya Sistemləri

KARTO ilə istilənmək istəsəniz bu mənbələrə nəzər yetirə bilərsiniz

Əlavə suallar və nasazlıqlar

  • E-poçt [email protected].
  • Bəzi suallar onsuz da cavablandırıla bilər GIS Stack Exchange cizgi etiketi.

Mündəricat

Hesablar quruldu

  • Təlimatçı hesabınıza daxil olmaq üçün sizə bir istifadəçi və şifrə təqdim edəcəkdir
  • Https://geostatXX.carto.com saytına daxil olaraq geostatXX hesabınıza daxil olun

Əsaslar¶

Fəsil 2-də göstərildiyi kimi, coğrafi məlumat elmində istifadə olunan bir neçə əsas məlumat quruluşu vardır: coğrafi cədvəllər (ümumiyyətlə obyekt məlumat modelləri ilə uyğunlaşdırılır), rasters və ya səthlər (ümumiyyətlə sahə məlumat modelinə uyğunlaşdırılır), və məkan şəbəkələri (ümumiyyətlə bir qrafik məlumat modeli ilə uyğunlaşdırılmışdır). Bunları bu bölmə boyunca növbə ilə müzakirə edirik.

Coğrafi Cədvəllər¶

Coğrafi obyektlər ümumiyyətlə dediyimiz şeylə uyğunlaşır coğrafi cədvəl. Coğrafi cədvəlləri sütunlardan birinin həndəsi məlumatları qeyd etdiyi bir cədvəldəki bir nişan kimi düşünmək olar. Bu məlumat quruluşu, cədvəldəki hər bir sütun cədvəl sırası olaraq tək bir coğrafi obyekti təmsil edir, aşağıda görəcəyimiz kimi obyekt, atributları və xüsusiyyətləri barədə məlumatları qeyd edir. Tipik olaraq, bu cədvəldə qeyd edən xüsusi bir sütun var həndəsə obyektin. Bu məlumat quruluşundan istifadə edən kompüter sistemlərinin coğrafiyanı a-ya əlavə etməsi nəzərdə tutulur əlaqəli verilənlər bazası, məsələn PostgreSQL (PostGIS uzantısı vasitəsilə) və ya sqlite (məkan uzantısı sayəsində). Bununla yanaşı, bunun xaricində bir çox məlumat elmi dillərində (R, Julia və Python kimi) bu məlumat strukturunu da qəbul edən paketlər var (sf, ArchGDAL və geopandas kimi) və sürətlə əsas məlumat quruluşuna çevrilir. obyekt əsaslı coğrafi məlumatlar.

Davam etməzdən əvvəl, terminologiya ilə bağlı qısa bir izahı verməyə kömək edir. Bu kitab boyunca istifadə olunan məlumat quruluşundan asılı olmayaraq, bir müşahidə ilə əlaqədar bir ölçüyə a xüsusiyyət. Bu, məlumat elmi və maşın öyrənməsindəki digər işlərlə uyğundur. Sonra bir ölçmə dəsti a nümunə. Cədvəllər üçün bu bir xüsusiyyətin bir sütun və bir nümunənin bir sıra olması deməkdir. Tarixən, coğrafi məlumat alimləri “xüsusiyyət” sözünü fərdi müşahidə mənasında işlədiblər, çünki kartoqrafiyadakı “xüsusiyyət” xəritədəki bir varlıqdır və bu müşahidənin xüsusiyyətlərini təsvir etmək üçün “atribut”. Başqa yerlərdə, a xüsusiyyət a adlandırıla bilər dəyişənvə a nümunə bir qeyd olaraq adlandırılır. Deməli, ardıcıl terminologiya vacibdir: bu kitab üçün a xüsusiyyət bir müşahidəyə aid bir ölçülmüş xüsusiyyətdir (sütun) və a nümunə bir ölçmə dəstidir (bir sıra).

Coğrafi cədvəllərin quruluşunu başa düşmək üçün bu kitabda yer alan ölkələr və dünya ölkələrini təsvir edən countries_clean.gpkg məlumatlarını oxumağa kömək edəcəkdir. Bu məlumatları oxumaq üçün jeopandalarda read_file () metodundan istifadə edə bilərik: ^ [Ümumiyyətlə iki əyri mötərizədən istifadə edəcəyik (məsələn method_name ()) funksiya, və bir obyekt və ya paketi ifadə edərkən onları (paket kimi) buraxacaqdır.]

Və .head () metodu ilə masanın üst hissəsini araşdıra bilərik:

ADMİN həndəsə
0 İndoneziya MULTIPOLİGON (((13102705.696 463877.598, 13102.)
1 Malayziya MULTIPOLİGON (((13102705.696 463877.598, 13101.)
2 Çili MULTIPOLİGON (((-7737827.685 -1979875.500, -77.)
3 Boliviya POLİGON ((-7737827.685 -1979875.500, -7737828.
4 Peru MULTIPOLİGON (((-7737827.685 -1979875.500, -77.)

Bu cədvəlin hər satırı vahid bir ölkədir. Hər bir ölkənin yalnız iki xüsusiyyəti var: ölkənin inzibati adı və ölkənin sərhəd həndəsi. Ölkənin adı mətn əsaslı məlumatların saxlanılması üçün istifadə olunan Python str tipindən istifadə edərək ADMIN sütununda kodlanır. Ölkə sərhədinin həndəsəsi həndəsə sütununda saxlanılır və həndəsi obyektləri təmsil etmək üçün istifadə edilən Python-da xüsusi bir sinif istifadə edərək kodlanır. Pythondakı digər cədvəl əsaslı məlumat strukturlarında olduğu kimi, hər sətirdə və sütunda onları özünəməxsus şəkildə müəyyən edən və cədvəlin sol tərəfində qalın şəkildə göstərilən bir indeks var. Bu coğrafi cədvəl, coğrafi məlumatları təmsil etmək üçün Python’un ekosistemində istifadə olunan geopandas.GeoDataFrame obyektinin bir nümunəsidir.

Coğrafi cədvəllər coğrafi məlumatları əlavə bir sütun kimi saxlayır. Bəs bu məlumat necə kodlanır? Görmək üçün birinci sətirdə obyektin növünü yoxlaya bilərik:

Geopandalarda (coğrafi məlumatları təmsil edən digər paketlərdə olduğu kimi), həndəsə sütununun ADMIN kimi “normal” sütunun malik olmadığı xüsusi əlamətləri vardır. Məsələn, dataframe qurarkən, həndəsə sütunu süjetdə istifadə ediləcək əsas forma kimi istifadə olunur:

Dəyişən həndəsələr diqqətlə aparılmalıdır: həndəsə sütunu xüsusi olduğundan həndəsəni tənzimləmək üçün xüsusi funksiyalar var. Məsələn, hər bir ölkəni öz ölkəsindən istifadə edərək təmsil etmək istəyirdiksə centroid, şəklin ortasında bir nöqtə olduqda set_geometry () metodundan istifadə edərək yeni bir həndəsə sütununun düzgün qurulduğundan əmin olmalıyıq. Eyni əsas nümunənin iki fərqli həndəsi təsviri ilə işləmək istədiyiniz zaman bu faydalı ola bilər.

Bir ölkənin həm sərhədinin, həm də mərkəzinin xəritəsini hazırlayaq. Əvvəlcə centroidi hesablamaq üçün gt_polygons.geometry.centroid xüsusiyyətindən istifadə edə bilərik. Bu, formanın sərhədindəki bütün digər nöqtələrdən orta məsafəni minimuma endirən nöqtəni verir. Centroid adlanan bir sütuna geri qayıtmaq:

İndi əlavə bir xüsusiyyətimiz var:

ADMİN həndəsə centroid
0 İndoneziya MULTIPOLİGON (((13102705.696 463877.598, 13102.) POINT (13055431.810 -248921.141)
1 Malayziya MULTIPOLİGON (((13102705.696 463877.598, 13101.) POINT (12211696.493 422897.505)
2 Çili MULTIPOLİGON ((-7737827.685 -1979875.500, -77. POINT (-7959811.948 -4915458.802)
3 Boliviya POLİGON ((-7737827.685 -1979875.500, -7737828. POINT (-7200010.945 -1894653.148)
4 Peru MULTIPOLİGON (((-7737827.685 -1979875.500, -77.) POINT (-8277554.831 -1032942.536)

Centroid bir həndəsə olmasına baxmayaraq, hazırda cədvəlimiz üçün həndəsə olaraq təyin edilməyib. Set_geometry () metodundan istifadə edərək centroid sütununa keçə bilərik. Nəhayət, həndəsə sütununu set_geometry ilə dəyişdirərək hər ölkənin mərkəzini və sərhədini qura bilərik:

GeoDataFrame-də .plot () çağıraraq necə bir xəritə yarada biləcəyimizə diqqət yetirin. Bir sütuna əsaslanan hər bir xüsusiyyəti həmin sütunun adını süjet metoduna keçirərək tematik olaraq rəngləndirə bilərik (bu halda ADMIN ilə etdiyimiz kimi).

Beləliklə, indi aydın olduğu kimi, demək olar ki, hər hansı bir coğrafi obyekt bir (və ya daha çox) həndəsə sütununda təmsil edilə bilər. Çəkə biləcəyi müxtəlif forma və ya həndəsələrin sayı barədə düşünmək ağlı çaşdırır. Xoşbəxtlikdən Açıq Coğrafi Məkan Konsorsiumu (OGC) hər hansı bir həndəsəni təyin etmək üçün istifadə edilə bilən bir sıra “mücərrəd” növlərini təyin etdi. ISO 19125-1-də kodlaşdırılan bu spesifikasiya - "sadə xüsusiyyətlər" spesifikasiyası - bu növlər arasındakı formal əlaqələri müəyyənləşdirir: bir nöqtə x və y koordinatları ilə sıfır ölçülü bir yerdir LineString bir çoxdan ibarət bir yoldur. bir nöqtədən daha çox və bir çoxbucaqlı, eyni koordinatla başlayan və dayanan ən azı bir LineString olan bir səthdir. Bütün bu növlər həmçinin eyni tip çoxsaylı həndəsələrin kolleksiyasını göstərən çoxlu variantlara sahibdir. Məsələn, Boliviya tək bir çoxbucaqlı olaraq təmsil olunur:

ADMİN həndəsə centroid
3 Boliviya POLİGON ((-7737827.685 -1979875.500, -7737828. POINT (-7200010.945 -1894653.148)

İndoneziya isə ölkədəki hər bir ada üçün çox poliqon olan bir MultiPolygondur:

ADMİN həndəsə centroid
0 İndoneziya MULTIPOLİGON (((13102705.696 463877.598, 13102.) POINT (13055431.810 -248921.141)

Bir çox halda, coğrafi cədvəllərdə tək tip qeydlərin həndəsələri olacaqdır hamısı məsələn Point və ya LineString ola bilər. Bununla birlikdə, a. Olduğu üçün heç bir rəsmi tələb yoxdur coğrafi cədvəl hamısı eyni tipə sahib olan həndəsələrə malikdir.

Bu kitab boyunca coğrafi cədvəllərdən çoxbucaqlı, eyni zamanda nöqtələr və sətirləri saxlayaraq geniş istifadə edəcəyik. Bu fəslin ikinci hissəsində cizgiləri bir az daha araşdıracağıq, amma hələlik nöqtələrdə bir saniyə dayanaq. Yuxarıda qeyd edildiyi kimi, bunlar heç bir ölçüyə malik olmamaları, yalnız onlara qoşulmuş bir cüt koordinat olması ilə ən sadə xüsusiyyət növləridir. Bu o deməkdir ki, nöqtələr bəzən coğrafi olmayan bir cədvəldə saxlanıla bilər, sadəcə hər koordinat üçün bir sütun istifadə olunur. Bunun bir nümunəsini daha sonra istifadə edəcəyimiz Tokyo verilənlər bazasında tapırıq. Məlumat vergüllə ayrılmış dəyər cədvəli və ya .csv kimi saxlanılır:

Pandalarla oxuduğumuzdan, cədvəl bir açıq məkan ölçüsü olmayan bir DataFrame olaraq yüklənir:

Cədvələ baxsaq, həndəsə sütunu olmadığını görürük:

İstifadəçi adı uzunluq enlik tarix foto / video_səhifəsi_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

Bu formatda bir çox nöqtə məlumat dəsti verilir. Onlardan maksimum yararlanmaq üçün onları GeoDataFrame cədvəllərinə çevirmək rahatdır. Bu prosesdə iki addım var:

Koordinatları həndəsələrə çevirin:

GeoDataFrame obyekti yaradın:

İndi də gt_points, həndəsə sütununun POINT həndəsələrini saxladığı fərqlə əvvəllər gördüyümüz ölkələrdən birinə bənzəyir və hiss edir:

İstifadəçi adı uzunluq enlik tarix foto / video_səhifəsi_url x y həndəsə
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 POINT (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 POINT (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 POINT (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 POINT (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 POINT (139.76875 35.67152)

Səthlər¶

Səthlər bir sahə məlumat modelindən məlumatları qeyd etmək üçün istifadə olunur. Nəzəri olaraq bir sahə davamlı bir səthdir və beləliklə ölçülə biləcəyi sonsuz sayda yeri vardır. Əslində, sahələr, davamlılıq hissi və sahə modelinə daha yaxşı uyğunlaşmaq üçün kosmosda bərabər şəkildə qurulmuş yerlərin sonlu bir nümunəsində ölçülür. Beləliklə, səthlər, hər hüceyrədə bir nümunə olduğu ızgaralar kimi təmsil olunur. Bir ızgara satır və sütunlu bir masa kimi də qəbul edilə bilər, lakin əvvəlki fəsildə müzakirə etdiyimiz kimi, hər ikisi birbaşa coğrafi mövqeyə bağlıdır. Bu, coğrafiyanın tək bir sütunla məhdudlaşdığı coğrafi cədvəllərlə kəskin şəkildə ziddiyyət təşkil edir.

Pythonun səthləri necə təmsil etdiyini araşdırmaq üçün, qlobal bir əhali məlumat bazasına aid Braziliyanın Sao Paulo şəhəri üçün bir çıxarış istifadə edəcəyik. Bu verilənlər bazası Yer səthini eyni dərəcədə əhatə edən eyni ölçülü hüceyrələrdə populyasiya sayını qeyd edir. Çıxarışımız coğrafi məlumatları ehtiva edən TIF şəkil formatının bir dəyişməsi olan bir GeoTIF faylı olaraq mövcuddur. GeoTIF-də oxumaq üçün xarray paketindən open_rasterio () metodundan istifadə edə bilərik:

Bu məlumatları bir DataArray obyektinə oxuyur:

xarray çox ölçülü etiketli massivlərlə işləmək üçün bir paketdir. Bunu açaq: satır və sütunlu bir cədvəldəki kimi yalnız iki ölçülü massivlərdən istifadə edə bilərik, lakin onların təsadüfi sayı ilə bu ölçülərin hər biri manipulyasiyanı asan və səmərəli edən bir indeks tərəfindən "izlənilir". Xarray-da bu indekslərə koordinatlar deyilir və bunlar DataArray-dan koordinatlar atributu vasitəsilə əldə edilə bilər:

Maraqlıdır ki, bizim səthimiz var üç ölçülər: x, y və zolaq. Əvvəlki, populyasiya şəbəkəsindəki hər hüceyrənin əhatə etdiyi enlem və boylamı izləmək üçün. Üçüncüsünün tək bir dəyəri var (1) və bu baxımdan çox faydalı deyil. Ancaq üçüncü bir ölçünün faydalı olacağı kontekstləri təsəvvür etmək asandır. Məsələn, optik rəngli bir şəkil üç lentə sahib ola bilər: qırmızı, mavi və yaşıl. Daha güclü sensorlar infraqırmızı (NIR) və ya hətta radio lentlərinin yanında əlavə lentlər götürə bilər. Və ya, Fəsil 2-də bəhs etdiyimiz geoküplər kimi zamanla ölçülən bir səthdə, sahənin ölçüldüyü hər nöqtə üçün bantlar olacaqdır. Beləliklə coğrafi bir səth hüceyrələrin yerini (x və y) qeyd edən iki ölçüyə və məlumatlarımıza aid digər ölçüləri qeyd edən ən azı bir zolağa sahib olacaqdır.

Xarray.DataArray obyekti attrs atributu altında saxlanılan dəyərlər haqqında əlavə məlumat ehtiva edir:

Bu vəziyyətdə, massivdəki piksellərin Yer səthindəki yerlərə çevrilməsi üçün lazım olan məlumatları (məsələn, transformasiya və crs), qətnaməni (250 ilə 250 metr) və daha yaxşı başa düşməyimizə imkan verən digər metadatların daxil olduğunu görə bilərik. məlumatların haradan gəldiyi və necə saxlanıldığı.

Beləliklə, DataArray üç ölçüyə malikdir:

Ortaq bir əməliyyat, bunu yalnız iki coğrafi olana endirmək olacaq. Bunu sel operatoru ilə edə bilərik, bu da məlumatları koordinatlarının dəyəri ilə seçməyimizə imkan verir:

Nəticədə ortaya çıxan obyekt iki ölçülü bir massivdir. Coğrafi cədvəllərə bənzər şəkildə, verilənlər bazamızdakı dəyərləri sürətlə qura bilərik:

Bu, bizə Sao Paulo bölgəsindəki əhalinin bölgüsü haqqında ilk baxış verir. Ancaq daha da araşdırsaq, xəritədə mənfi saymaların olduğunu görə bilərik! Bu necə ola bilər? Göründüyü kimi, itkin məlumatlar ənənəvi olaraq səthlərdə öz sinifləri kimi deyil (məsələn NaN), lakin qeyri-mümkün bir qiymətlə saxlanılır. Yuxarıdakı attrs çapına qayıtsaq, nodatavals atributunun -200 ilə qeydə alınan itkin məlumatları necə göstərdiyini görə bilərik. Bunu nəzərə alaraq, yalnız olan dəyərləri seçmək üçün where () metodundan istifadə edə bilərik yox -200:

jupyter nbconvert - dəftərə - başlıqları icra edin .ipynb cp ../book/infrastructure/logo/favicon.ico tmp_book / favicon.ico jupyter-book build tmp_book –builder lateks sed -e 's / section / chapter / g' -e 's / subsection / section / g' -e 's / subsubsection / subsection / g' tmp_book / _build / latx / python.tex & gt tmp_book / _build / lateks / python_1.tex jupyter nbconvert - dəftərə –Datex.ipynb cp infrastrukturunu icra edin / crc / Krantz_AuthoredBook_v1.18 / Krantz_AuthoredBook_v1.18 / krantz.cls tmp_book / _build / lateks / krantz.cls cp tmp_book / *. Tex tmp_book / _build / lateks /. cp tmp_book / _build / lateks / part1.tex tmp_book / _build / lateks / part1.md pandoc tmp_book / _build / lateks / part1.md -o tmp_book / _build / lateks / part1.tex cp tmp_book / _build / lateks / part2.tex tmp_book / _build / lateks / part2.md pandoc tmp_book / _build / lateks / part2.md -o tmp_book / _build / lateks / part2.tex cp tmp_book / _build / lateks / part3.tex tmp_book / _build / lateks / part3.md pandoc tmp_book / _build / lateks / part3.md -o tmp_book / _build / lateks / part3.tex Colorbar artıq daha həssas görünür və göstərir həqiqi itkin məlumat yer tutucu dəyərlərini daxil etmək əvəzinə sayar.

Məkan qrafikləri¶

Məkan qrafikləri cisimlər arasındakı əlaqələri məkan vasitəsilə saxlayır. Bu əlaqələr coğrafi topologiyadan (məs. Uyğunluq), məsafədən və ya qarşılıqlı təsir axınları (məsələn, ticarət, ticarət, rabitə) kimi daha inkişaf etmiş ölçülərdən əldə edilə bilər. Coğrafi cədvəllər və səthlərlə müqayisədə məkan qrafikləri olduqca fərqlidir. Birincisi, əksər hallarda müəyyən bir fenomenlə bağlı ölçüləri qeyd etmirlər, əksinə fokuslanırlar əlaqələr, cisimlər arasındakı əlaqələrin yer tərəfindən asanlaşdırıldığı (və ya olmadıqları təqdirdə) qorunması. İkincisi, bu əlaqəli təbiətə görə məlumatlar daha quruluşsuz bir şəkildə təşkil edilir: bir nümunə yalnız başqa bir nümunə ilə əlaqələndirilə bilsə də, digər bir neçə keçid göstərə bilər. Bu, hər ikisinin də məlumatların təşkil olunduğu açıq bir quruluşa, forma və ölçüyə sahib olan coğrafi cədvəllərdən və səthlərdən tamamilə fərqlidir. Bu xüsusiyyətlər fərqli bir Python məlumat quruluşuna çevrilir. Əvvəllər gördüyümüzdən fərqli olaraq, hər biri fərqli kontekstlər üçün optimallaşdırılmış məkan qrafiklərini təmsil etmək üçün fərqli məlumat strukturları mövcuddur. Belə hallardan biri də məkan əlaqələrinin kəşfiyyat məlumatlarının təhlili və ya reqressiya kimi statistik metodlara inteqrasiyasıdır. Bunun üçün ən çox yayılmış məlumat quruluşu, növbəti fəsli həsr etdiyimiz məkan ağırlıqları matrisalarıdır.

Bu fəsildə qrafikin riyazi konsepsiyasına daha çox yaxın olan məkan qrafiklərini əks etdirməyin fərqli bir yolunu qısaca nəzərdən keçiririk. Qrafik ibarətdir qovşaqlar ilə bir-birinə bağlanan kənarları. Məkan şəbəkəsində, qovşaqlar coğrafi yerləri təmsil edə bilər və buna görə də müəyyən bir yerə sahib ola bilər, kənarları bu yerlər arasındakı coğrafi yolları təmsil edə bilər. Şəbəkələr hər ikisini tələb edir qovşaqlarkənarları quruluşlarını təhlil etmək.

Təsvir üçün OpenStreetMap-dən məlumatları soruşa bilən osmnx kitabxanasına etibar edəcəyik. Məsələn, əvvəllər verdiyimiz məlumatların yaxınlığında, Tokyo-dan Yoyogi Parkının küçə əsaslı qrafikini çıxarırıq:

Yuxarıdakı kod parçası məlumat almaq üçün sorğunu OpenStreetMap serverinə göndərir. Yuxarıdakı hüceyrəyə diqqət yetirin tələb edir işləmək üçün internet bağlantısı. Kitab üzərində işləyirsinizsə olmadan əlaqə, qrafikin önbelleğe alınmış bir versiyası məlumat qovluğunda mövcuddur və aşağıdakı kimi oxuna bilər:

Verilənlər osmnx-ə qaytarıldıqdan sonra, Python qrafasına təqdim olunur:

Grafiğin quruluşunu plot_graph metodu ilə sürətli bir şəkildə yoxlaya bilərik:

Nəticədə qraf obyekti əslində Python-da yazılmış bir qrafika kitabxanası olan networkx-dən bir MultiDiGraphdır. Buradakı qrafik 106 qovşaq (küçə kəsişmələri) toplusu kimi saxlanılır:

və onları birləşdirən 287 kənar (küçə):

Bir düyünün yeri və kimliyi kimi daha çox məlumat əldə etmək üçün bu elementlərdən hər biri soruşula bilər:

Bir kənarın xüsusiyyətləri:

Və ya qrafın fərqli komponentlərinin bir-biri ilə əlaqəsi. Məsələn, başqa hansı qovşaqlar 1520546819 qovşağına birbaşa bağlıdır?

Beləliklə, şəbəkələrin Python-da təmsil olunması asandır və coğrafi məlumat elmindəki üç əsas məlumat quruluşundan biridir.


Layihə: # Avropa Birliyi və # 8211 Həftə 3 Rəy

Sən hər şeyin mənalı olmasını təmin etmək və aşağıdakıların necə gəldiyini başa düşmək üçün aşağıdan əvvəl bunu yaxşı oxuyun.

Həftə 3 = 29 May Bazar - 4 İyun Şənbə

Twitter-də 3-cü həftədə keçiriləcək Böyük Britaniyanın AB Referendumu ilə bağlı fikir necə oldu? 1-ci və 2-ci həftələrdə "qaldı & # 8221 qalib gəldi & # 8230" kimi göründü

3-cü həftə trendin davamını təmsil edir: fikirlərimi "tərk etmək & # 8221" meyarlarımı işə salmaq üçün bu şəkildə ifadə edənlər, "qalmaq" istəyənlərdən daha çoxdur:

  • Get = 3 həftədə 3.291 tweet (2. həftədə 3.429 və 1 həftədə 2.566 tweet)
  • Qalan = 3. həftədə 1.258 tvit (2. həftədə 1.103 və 1. həftədə 727 tvit)

Bununla birlikdə, bu, həftədə bir həftədə, bu, 2-ci həftəyə nisbətən & # 8220 tərk & # 8221 tweet-də% 4 azalma olduğunu, ancaq 1-ci həftədə% 28 artım olduğunu göstərir. Həftə 2 və 1 həftə ilə müqayisədə% 73.

Bu, hiperbol həddən artıq və zaman getdikcə daraldıqca fikirlərini bildirməyə başlayan daha səssiz və çoxluğun bir əlaməti ola bilərmi, çünki nəsillərdəki ən böyük qərar nədir?

Mübahisənin kobud coğrafiyasını göstərən altındakı bir məkan istilik xəritəsi ilə birlikdə müvəqqəti bir tork xəritəsi üçün aşağıya baxın. 4.549 tvitdən CartoDB & # 8217s daxili georeferans alətlərindən istifadə edərək 2.011 georeference verə bildim (% 44).

Aydındır: bu referendumun nəticəsini hər hansı bir şəkildə sınamaq və proqnozlaşdırmaq üçün nəzərdə tutulmayıb.


CartoDB xəritəsinə xətt necə əlavə olunur? - Coğrafi İnformasiya Sistemləri

Əslində 9 Avqust 2014-cü ildə yazılıb
Sonuncu dəfə 15 fevral 2016-cı ildə yeniləndi

Mən (Chris Henrick) Kartoqrafiya və Coğrafi İnformasiya Sistemləri üzrə peşəkar təcrübəm var. Bu yaxınlarda ön veb inkişaf, məlumatların vizuallaşdırılması və interaktiv veb-xəritəçəkmə mövzusunda məsləhətləşdim. Xəritəçəkmə texnologiyasını geniş ictimaiyyətə pulsuz öyrətməyi sevən bir qrup könüllü olan Maptime'nin NYC bölməsini birlikdə təşkil etməyə kömək edirəm.

Bu Dərslik nədir?

Pulsuz açıq mənbə proqramı CartoDB istifadə edərək məlumatları vebdə interaktiv şəkildə xəritələşdirin.

Əsasən vebdə yaşayan interaktiv xəritələr yaratmağa yeni başlayan insanlar. CİS və ya Kartoqrafiya təcrübəniz varsa bu təlimatdan bir neçəsi nəzərdən keçirilə bilər, xahiş edirəm mənimlə çılpaq olun.

Bu təlimatla verdiyim təqdimat üçün slaydlara baxa bilərsiniz. Slaydlar arasında gezinmek üçün ◀ ▶ düymələrindən istifadə edin.

İnsanlar CartoDB-dan interaktiv xəritələr yaratmaq üçün necə istifadə etdiklərinə dair bəzi nümunələr:

CartoDB, vebdəki yerleşim məlumatlarını görselləşdirmək və təhlil etmək üçün Xidmət kimi bir Proqramdır (SaaS). İnternetdə öz məlumatlarınızla interaktiv xəritələr yaratmağın bəlkə də ən dostu metodudur. CartoDB, intuitiv istifadəçi interfeysi və SQL (Strukturlaşdırılmış Sorgulanan Dil) və Post-CBS istifadə edərək inkişaf etmiş coğrafi məkan təhlili vasitəsilə yüksək kartoqrafik fərdiləşdirməyə imkan verir.

CartoDB və Tile Mill kimi digər opensource veb-kartoqrafiya proqramından əvvəl, öz veb serverinizi idarə etmək və həm server tərəfi, həm də verilənlər bazası proqramını quraşdırmaq məcburiyyətində olan veb xəritələr yaratmaq. Bu ola bilər son dərəcə çətindir təcrübəli bir kompüter proqramçısı / arxa tərəfli veb geliştiricisi olmasanız. CartoDB ilə əlaqəli ən yaxşı şey, sizin üçün bütün server tərəflərini idarə etməsidir! Məsələn, hər dəfə CartoDB-yə məlumat idxal etdiyiniz zaman həmin məlumat avtomatik olaraq olan bir verilənlər bazasında saxlanılır yerleşim imkanları.

Yerleşim? Gözləyin, bu nədir.

Yerleşim məlumatları məkan əsaslı, həndəsi bir komponentə sahib olan məlumatlara aiddir. Əksər yerleşim məlumatları vektor formatı və həndəsi atributları həqiqi aləmdəki enlik və uzunluq koordinatları kimi fiziki yerlərə istinadları olan nöqtələr, xətlər və çoxbucaqlar kimi saxlanılır. Coğrafi İnformasiya Sistemi ilə coğrafi məlumatlar həm fiziki, həm də mədəni xüsusiyyətləri təmsil etmək üçün istifadə edilə bilər. Daha sonra bu məlumatlar xəritədə göstərilə bilər və problemləri həll etmək və mühiti modelləşdirmək üçün məkan təhlil edilə bilər.

Həndəsə Növlərinə Nümunələr:

Daha sonra ola biləcək küçə ünvanlarının siyahısı georeferenced (en) uzunluq koordinatları (nöqtələri) fərdi cütlüklərinə (uyğunlaşdırılıb), məsələn, NYC-dəki bütün dövlət məktəblərinin yerləri:

Çaylar, çaylar və ya yol şəbəkələri kimi xüsusiyyətlər saxlanıla bilər və xətlər kimi təmsil olunur:

New York şəhərinin mahal sərhədləri (və ya əyalətlər, əyalətlər və ölkələr kimi digər inzibati hökumət sərhədləri) çoxbucaqlı şəklində saxlanıla bilər:

Göstərilən məlumatların göstərilməsi üçün istifadə olunur xəritə plitələr OpenStreetMap, Google Maps, Bing, Map Quest və s.-də gördükləriniz kimi. Məsələn, bunlar San Francisconun eyni ərazisi üçün fərqli provayderlərin xəritə plitələridir:

Xəritə plitələri, 256 x 256 piksel şəkillərdə, moda bənzər bir şəbəkəyə uyğunlaşdırılmışdır. Yaxınlaşdırma və paninqin veb-xəritə istifadəçisi tərəfindən qüsursuz və maye görünməsi üçün bu şəkildə parçalanırlar. Yalnız istifadəçinin baxdığı xəritə sahəsindəki və xaricindəki şəkillər göstərilir. Serverə qonşu plitələrin göstərilməsi və gizli yer bunları belə ki, yeni bir sahəyə keçdiyiniz zaman qarşılıqlı təsir qüsursuz görünür.

Bu təlimat üçün xəritə plitələrimizi meydana gətirir əsas xəritə üst-üstə sala bilərik xüsusi məlumatlar üstündə. Daha da olsa, edə bilərik təhlil etmək CartoDB ilə yerleşim məlumatlarımız. Bu bacarıqların hər ikisi əyləncənin olduğu yerdir :)

PostGIS ilə yerleşim məlumatlarının təhlili

PostGIS (PostgreSQL ilə birlikdə) CartoDB-dəki məlumatlar üzərində coğrafi təhlil aparmağa imkan verən açıq mənbəli verilənlər bazası texnologiyasıdır. Bunu niyə digər CİS proqram təminatı üzərində istifadə etmək istəyirik?

  • Təkrarlana bilər: İş axınınızı yaza bilərsiniz, bu işinizin izini qoymaq üçün əladır.
  • SQL üzərində qurulur: Əgər əvvəllər SQL bilirsinizsə, bu, CİS təhlilinə başlamağın asan bir yoludur.
  • Verilənləri dinamik olaraq sorğu edə bilərsiniz: Bir PostGIS sorğusunu əzib JSON-u qaytara bilən bir serveriniz varsa, tətbiqlərinizdə dinamik məkan sorğuları edə bilərsiniz. məs. "Bütün nöqtələri mənə yaxın tapın."

Bu dərslikdə bəzi əsas PostGIS-ləri əhatə edəcəyik, ancaq maraqlandığınız təqdirdə CartoDB-da PostGIS-dən istifadə etmək üçün başqa bir giriş təlimatı tapa bilərsiniz. CartoDB-nin Xəritə Akademiyasında da çox sayda əla dərs var

CartoDB Panelinə giriş

  1. Pulsuz bir hesab yaradın və CartoDB-yə daxil olun. Giriş edib panelə baxdıqdan sonra Məlumat Kitabxanası seçimini (panelin sağ yuxarı küncündə) vurun. 5-ci səhifəyə keçin, Əhali Yerləri verilənlər bazasınınını seçin və sonra panelin yuxarı hissəsindəki əlaqə məlumatlarına vurun. Bu, Əhali Yerləri verilənlər bazasının hesabınıza gətirəcəkdir.

Məlumatlar idxal edildikdən sonra adm0cap sahəsinə nəzər salın masa görünüşü. Bu sahə 0 və 1-ləri saxlayır, sonuncusu yerin ölkə paytaxtı olduğu mənasını verir.

CartoDB-da məlumatlarınızı yoxlamaq üçün iki yol var:

Cədvəl görünüşü: Sütun adlarını və amp cədvəllərini cədvəl kimi çox göstərir. Bu verilənlər bazası üçün hər sətir bir nöqtəni təmsil edir. Ancaq satırlar məlumatlarınızdan asılı olaraq digər həndəsə növlərini də təmsil edə bilər.

  • The_geom sütunundakı hüceyrələrdən birinin içərisinə baxın, lattitude və Boylam koordinatlarını görməlisiniz.

Xəritə görünüşü: Verilərimizin vizual olaraq yoxlanılmasına imkan verir, məsələn: interaktiv veb xəritədə böyütmə və panning. Buradan baza xəritəsinin tərzini dəyişdirə bilərik Vizual Sihirbaz məlumatlarımızı tərtib etmək və cədvəl görünüşümüzdəki sütunlardan dəyərləri göstərən pop-uplar kimi qarşılıqlı əlaqə əlavə etmək üçün yan çubuqda.

Vizual Sihirbazda məlumatların tərzini dəyişdirməyə çalışın kateqoriya görünüşü, adm0cap sütununu seçin və adm0cap üçün dəyərə əsasən müxtəlif növ markerlər təyin etməyə çalışın. Unutmayın, 1 bir yerin ölkənin paytaxtı olduğu mənasını verir.

Qeyd: Marker olaraq istifadə ediləcək xüsusi şəkillər yükləyə bilərsiniz.

Xəritənin yayımlanması / paylaşılması:

Sağ üst küncdəki Vizual düyməsini vuraraq a yarada bilərik Vizualizasiya. Bunu edin və vizuallaşdırmanıza "Mənim İlk Vizim" kimi bir ad verin.

Bir görselləşdirmə yaratdığımız zaman, xəritə görünüşümüzdən təyin etdiyimiz üslubları miras alacaq.

Vizualizasiyalar məlumat cədvəllərinizə bağlanaraq işləyir. İdxal etdiyimiz məlumat cədvəlini yoxlamağa qayıtsaq və üslubları buradan dəyişdirsək, həmin məlumatlarla etdiyimiz görselleştirmeyi olmayacaq bu üslublarla yenilənir. Lakin bu cədvəllərdəki dəyərlərdə hər hansı bir dəyişiklik etsəniz, uyğun görselleştirme olacaq təsirlənmək.

Qeyd: görselleştirmemizde (məlumat və ya stil) etdiyimiz hər hansı bir dəyişiklik, vizimizi görən hər kəsə real vaxtda yenilənəcəkdir!

Arasındakı fərqlərə diqqət yetirin masalargörselləşdirmə Panelinizdəki baxışlar. Birincisi, hesabınıza idxal etdiyiniz məlumat dəstlərini, ikincisi məlumatlarınızla yaratdığınız xəritələri və vebdə paylaşmağı / yayımlamağı seçə biləcəyinizi göstərir.

Qeyd: Tək bir görselləşdirmə şəklində bir çox cədvələ keçid edə bilər qatlar. Bu, Kartoqrafik Dizaynda əsas bir anlayışdır və təbəqə qaydaları vacibdir.

Ödənişsiz bir hesabdan istifadə edərək təlimin növbəti hissəsi ilə irəliləməyimiz üçün saxlama sahəsinə ehtiyacımız olduğu üçün əvvəllər yaratdığımız məskunlaşma yerlərini və vizuallaşdırmanı silin.

ABŞ bölgələrini idxal et, 1979 - İndiki verilənlər bazası (hal hazırda məlumat kitabxanasının 5-ci səhifəsində)

Bu məlumatlara nəzər salaq. The_geom sütununun altındakı hüceyrələrdən birini vurun. Bir şey görməlisiniz:

CartoDB həndəsəni a üçün belə saxlayır çox poliqonvə ya bir çox poliqon qrupu. Bu koordinatların hər biri a düyün tək bir çoxbucaqlıda. Çox poliqonlar, bir əyalət və ya vilayət kimi tək bir siyasi varlığa aid olan adalar kimi bir çox coğrafi xüsusiyyətləri qruplaşdırmaq üçün faydalıdır.

İndi keçin Xəritə görünüşü poliqonların xəritəmizdə necə örtüldüyünü görmək.
Vizual Sihirbazda:

Xəritədə bir yerə basmağa çalışın. Aşağıdakı mesajı olan bir açılır ekrana diqqət yetirin: "Məlumat pəncərəsində göstəriləcək heç bir sahə seçməmisiniz." Seçin sahələri bağlantısını vurun və sağdakı yan çubuğun üzərinə gedəcəyinə diqqət yetirin Məlumat pəncərəsi panel. Verilənləri açılan pəncərələrdə göstəriləcək və ya CartoDB-nin çağırdığı kimi konfiqurasiya edə bilərsiniz Məlumat Windows.
Budur:

  • Məlumat pəncərəsində göstəriləcək dəyərlər üçün sütunlarınızdan birini açın və ya söndürün.
  • Məlumat pəncərəsində göstəriləcək sütunun adını düzəldin (Qeyd: bu, həqiqi məlumatlarınızdakı sütun adını dəyişdirməyəcəkdir).
  • Məlumat Windows tərzini dəyişdirin.
  • onları HTML və CSS ilə fərdiləşdirin.

Vizual Sihirbazdan istifadə edərək məlumatlarımızın qrafik stilini dəyişdirməyə çalışaq. Stili "sadə" dən "choropleth" ə keçin. Çoxbucaqlı məlumatlarımızın məlumatdakı dəyərlərə əsasən avtomatik olaraq rəng kodlaşdırmasına necə diqqət yetirin, bu halda ümumi əhali. Ancaq burada bir problem var: əhalinin mahallara görə xəritələnməsi xəritəmizi izləyənə yanlış təsir bağışlayır. Etməliyik normallaşdırmaq bir mahalda insan sayını coğrafi əraziyə bölərək məlumatlar.

Xoşbəxtlikdən məlumatlarımızda pop_sqkm sütununa bu dəyər daxil edilmişdir. Bunu özünüz necə hesablaya biləcəyinizi göstərmək üçün aşağıdakıları edərdik SQL Panel:

Bu açıq mənbə texnologiyasından istifadə nümunəsidir PostGIS məlumatlarımızı kosmik olaraq təhlil etmək. PostGIS ilə fərqli məkan məlumat dəstlərinin bir-birinə təsir etdiyi məsafə və sahə kimi dəyərləri hesablaya bilərik, eyni zamanda məlumatlarımızı fərqli məlumat formatlarına ixrac edə bilərik. GeoJSON və ya Shapefile.

Tematik bir nöqtə xəritəsi hazırlamaq

Tornado tarixi məlumatların 1950 - 2013 verilənlər bazasının idxal edilməsi (hazırda məlumat kitabxanasının 3-cü səhifəsində).

Məlumatları yoxlayın. Çünki bu məlumatlar hamımızın CSV formatında saxlanılıb məlumat növləri kimi saxlanılır simlər (simli bir cümlə və ya söz kimi mətni saxlamaq üçün bir məlumat növüdür). İstifadə etmək üçün ədədiTarix bu veridəki dəyərləri, sütun adının yanındakı kiçik bir yerkökü vurub sonra üzərinə vuraraq aşağıdakı sütunları müvafiq məlumat növlərinə çevirməliyik. "Məlumat növünü dəyişdirin."
İndi biz:

  • zərər sütununun məlumat tipini çevirmək nömrə.
  • tarix sütununun məlumat növünü çevirmək Tarix. Düzgün məlumat tiplərinə sahib olmaq məkan təhlili aparmaq üçün vacibdir. PostGIS, əslində rəqəmlər və ya tarixlər olduğunda məlumat tipimizin sətir olduğunu düşünürsə, analizimiz nəticə verməyəcəkdir!

İndi xəritə görünüşündə Bubble Map, intensivlik, sıxlıq xəritəsi və s. Kimi müxtəlif üsullarla məlumatlarımızın zərər dəyərini göstərmək üçün Görselleştirme Sihirbazından istifadə edin.

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! Baxın Qaynaqlar 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.


Anonim Xəritələr, SQL və CartoCSS verilən bir xəritəni hazırlamağa imkan verir. Ayrıca UTF Grid istifadə edərək qarşılıqlı təsir imkanları əlavə etməyə imkan verir .. Alternativ olaraq, vektor plitələrindən istifadə edərək xəritə (hər qat üçün həndəsə və atributlar) üçün məlumat əldə edə bilərsiniz (bu halda CartoCSS tələb olunmur).

Təsəvvür edin

Definition
Params
Cavab

Xüsusiyyətlər Təsvir
qat qrupu Plitələr üçün URL tərtib etmək üçün istifadə olunan xəritə üçün şəxsiyyət vəsiqəsi. Son URL: https: //.carto.com / api / v1 / map ////.png
güncəlləndi Sorğuda iştirak edən məlumatların sonuncu dəfə ISO tarixi yeniləndi.
metadata Qatlar haqqında məlumat daxildir.
cdn_url Bölgəniz üçün ən yaxşı CDN-dən istifadə edərək məlumat almaq üçün URL'lər.

Təkmilləşdirilmiş cavab metadata

Əvvəlcə laygroupid-i düzgün domen və plitələr üçün yol ilə birləşdirməlisiniz. İndi, rahatlıq üçün qat qrupu iki formatda son URL-ləri əhatə edir:

  1. Leaflet’in urlTemplate eyni: raster plitələrlə və ya Leaflet’ə bənzər bir API ilə kitabxanalarda işləyərkən faydalıdır. : Mapbox GL və ya TileJSON-u dəstəkləyən hər hansı digər kitabxana ilə işləyərkən faydalıdır.

Misal

Cavab

Xəritə Çini göstərilməsi

Xəritə plitələri bir veb brauzerdə xəritənizin qrafik təsvirini yaratmaq üçün istifadə olunur. Fayanslar əvvəlcədən işlənmiş olaraq istənə bilər raster plitələr (şəkillər) və ya vector müştəri (brauzer) tərəfindən göstəriləcək xəritə məlumatları.

Raster: PNG kimi bir raster şəkil formatı olaraq bir kafel istənirsə, xəritə xəritənin təbəqələrində müəyyən edilmiş CartoCSS üslublarından istifadə edərək serverdə göstəriləcəkdir. Raster plitələr əldə etmək üçün bir xəritənin bütün təbəqələrinin CartoCSS üslublarını təyin etmələri lazımdır. Rastr plitələri, qrafik keyfiyyəti problemlərinin qarşısını almaq üçün 256x256 pikseldən ibarətdir, plitələr istənildiyi zoom səviyyəsini (Z) təmsil etmək üçün miqyassız istifadə edilməlidir. Plitələr göstərmək üçün verilənlər bazasından (vektor formatında) məlumat server tərəfdən alınacaq.

Vektor: MVT (Mapbox Vector Tiles) kimi plitələr də istənə bilər. Bu vəziyyətdə, heç bir stil vermədən yalnız yerleşim vektor məlumatları qaytarılır. Bu plitələr xəritəni göstərmək üçün müştəri tərəfində işlənməlidir. Bu halda qatların CartoCSS-i təyin etməsinə ehtiyac qalmır, çünki hər hansı bir göstərmə və tərtibat müştəri tərəfində həyata keçiriləcəkdir. Bir plitənin vektor məlumatları, kafelə xüsusi bir koordinat sistemindəki nöqtələrin, xətlərin və ya çoxbucaqların təpələrini təyin edərək gerçək dünya həndəsələrini təmsil edir.

Layihə qrupundan mənbələr əldə edin

Bir təbəqə qrupuna sahib olduğunuzda, Mapnik plitələrinə daxil olmaq, ayrı-ayrı təbəqələr əldə etmək, müəyyən edilmiş xüsusiyyətlərə daxil olmaq və qarışıq və qat seçimi kimi qat qrup detallarını almaq üçün bir neçə qaynaq var.

Raster plitələr

Bu raster plitələr bir xəritənin yalnız Mapnik təbəqələrini təmsil edən PNG şəkilləridir. Digər təbəqələri necə əldə etmək barədə ətraflı məlumat üçün fərdi təbəqələrə baxın.

Xəritə qutusu vektor plitələri (MVT)

Mapbox Vector Tiles (MVT), coğrafi vektor məlumatlarını müştəri tərəfinə ötürən xəritə plitələridir. Brauzerin performansı sürətlidir, çünki serverdən sorğu keçirmədən onu sıxaraq böyüdə bilərsiniz.

CARTO brauzerdə MVT sənədlərini işləmək üçün Web Graphics Library (WebGL) istifadə edir. Bu, WebGL-in əksər veb brauzerlərlə uyğun olduğundan, bir çox müştəri tərəfli Xəritəçəkmə mühərriklərinə dəstək daxil olduğundan və serverdən xəritə plitələrinin göstərilməsini daha səmərəli edən əlavə məlumat tələb etmədiyindən faydalıdır. Bununla birlikdə, MVT sənədlərini işləmək üçün hər hansı bir tətbiq vasitəsini istifadə edə bilərsiniz.

Aşağıdakı nümunələrdə MVT plitələrinin cURL istəyi ilə necə gətiriləcəyi təsvir olunur.

MVT və külək

CARTO, Xəritə API ilə çox qatlı xəritələr göstərmək üçün xəritə tiler kitabxanası olaraq Windshaft istifadə edir. Raster plitələr istəmək üçün istifadə olunan eyni təbəqə növündən (Mapnik təbəqəsi) istifadə edərək MVT tələb etmək üçün Windshaft istifadə edə bilərsiniz. URL-də .mvt fayl formatını dəyişdirmək kifayətdir.

Aşağıdakı nümunə, qat seçimləri ilə anonim bir xəritə hazırlayır:

Note: Heç bir təbəqə növü göstərilməyibsə, Mapnik plitələr varsayılan olaraq istifadə olunur. MVT plitələrinə daxil olmaq üçün https: // göstərin.cartodb.com / api / v1 / map / HASH ///.mvt maps_api_template dəyişən kimi.

İpucu: Bir qat hazırlamaq üçün Adlı Xəritələrdən istifadə edirsinizsə, cavabda MVT fayl formatını və qatını göstərin:

Adlı Xəritədəki bütün təbəqələr üçün Mapnik-i qat filtri kimi göstərməlisiniz:

MVT Fayansları üçün Layergroup Filter

Windshaft istifadə edərək təbəqələri süzmək üçün təbəqələrin nömrələndiyi aşağıdakı sorğudan istifadə edin:

Bütün təbəqələri tələb etmək üçün qat qrupu filtri parametrini silin:

Müəyyən bir təbəqəni süzmək üçün:

Nümunə 1: Windshaft, CARTO.js və MapboxGL ilə MVT Fayansları

1) Tələb olunan kitabxanaları idxal edin:

3) Xəritə Nişanı (Mapbox) yaradın:

4) Layer Seçimlərini Tərif edin (CARTO):

5) Fayans istəyin (KARTO-dan) və Xəritə Nişanına (Mapbox) qurun:

Qeyd: Varsayılan olaraq, CARTO əsas funksiyaları tamamilə göstərilən plitələr üçün URL-lər alır. Varsayılan formatı (.png) MVT formatı (.mvt) ilə əvəz etməlisiniz.

Nümunə 2: Windshaft və MapboxGL ilə MVT Kitabxanaları

MVT plitələrini tətbiq etmək üçün CARTO.js daxil etmədiyiniz zaman, vektor xəritəsi göstərilməsini təyin etmək üçün map.setStyle parametrindən istifadə etməlisiniz.

1) Tələb olunan kitabxanaları idxal edin:

3) Xəritə Nişanı (Mapbox) yaradın:

İpucu: MapboxGL istifadə edirsinizsə, əlavə məlumat üçün aşağıdakı mənbəyə baxın.

Fərdi təbəqələr

MapConfig spesifikasiyası qatlar tərifini 0 əsaslı indeksdə saxlayır. Laylar, təbəqə növündən asılı olaraq ayrı-ayrılıqda, müxtəlif formatda istəyə bilər.

Fərdi təbəqələrə həmin 0 əsaslı indeksdən istifadə etmək olar. UTF şəbəkə plitələri üçün:

Bu vəziyyətdə 0 kimi qat, MapConfig nümunəsindəki tək qat olan 0 qat üçün UTF grid plitələrini / atributlarını qaytarır.

MapConfig indeks 1-də bir Tork qatına sahib olsaydı, onu aşağıdakılarla tələb etmək olardı:


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:

Atribut:

And if you do 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.

Videoya baxın: اضافة اكثر من 1000 خط للورد فى اقل من الدقيقة Add fonts to word