Daha çox

CSV idxal etmək və fərqli rəng istifadə edərək xal çəkmək üçün PyQGIS istifadə edin

CSV idxal etmək və fərqli rəng istifadə edərək xal çəkmək üçün PyQGIS istifadə edin


CSV faylı sütunlardan ibarətdirenlik,uzunluqrəng.

uri = "file: /// C: /data/balls.csv? type = csv & xField = longitude & yField = latitude & spatialIndex = no & subsetIndex = no & watchFile = no" vlayer = QgsVectorLayer (uri, 'Balls', "ayrılmış mətn")

QGIS -də Python konsolundan istifadə edərək, CSV -də hər bir sətri rəngi dəyərdən asılı olan bir nöqtə olaraq necə çəkə bilərik?rəngidxal olunan CSV sütunu?

Mənim anlayışım budurQgsDataSourceURI.setDataSource ()idxal zamanı belə bir WHERE sorğusu edə bilər, ancaq yalnız PostGIS üzərində işləyir.


Bunu etmək üçün simvol təbəqəsi üçün verilən məlumatların xüsusiyyətlərinə daxil olmalı və sahənin adını ifadə olaraq ötürərək rəngi təyin etməlisiniz. Bunu belə edə bilərsiniz:

uri = "file: /// C: /data/balls.csv? type = csv & xField = longitude & yField = latitude & spatialIndex = no & subsetIndex = no & watchFile = no" vlayer = QgsVectorLayer (uri, 'Balls', "delimitedtext") MySymbolV2 QSdeSymbolbol (vlayer.geometryType ()) mySymbolLayer = mySymbol.symbolLayer (0) ## COLOR_FIELD -i CSV məlumatlarınızın sütun adı ilə əvəz edin mySymbolLayer.setDataDefinedProperty ("color", '"COLOR_FIELD"') vlayer.render) [0] .changeSymbolLayer (0, mySymbolLayer) QgsMapLayerRegistry.instance (). AddMapLayer (oyunçu)

Qrafiklər üçün CSV -dən (Enlem və Boylam) Düyünlər/Kənarlar yaradın

Son Məqsəd: İki nöqtə arasındakı ən qısa və ən sərin (temperatur baxımından) yolu tapmaq istəyirəm (xəritədə müəyyən bir enlem və uzunluq cütü üçün)!

Dijkstra və ya A*kimi naviqasiya sistemlərində istifadə olunan alqoritmlərdən xəbərdaram. Əslində, Python -da NetworkX istifadə edərək müvəffəqiyyətli bir qrafika yarada və ən qısa yolu asanlıqla tapa bildim:

Qrafik yaradıldıqdan sonra çox asandır, bu bir xətt ən qısa yolu verir:

Problem: Bunun üçün həqiqi bir məlumat üçün Qrafik (düyünlər və kənarlar, çəkilər) yaratmaq üçün mübarizə aparıram Son Məqsəd ilk olaraq qeyd olunur. Məlumatlar belə görünür:

zaman, uzunluq, enlik və temperatur (geodata) ehtiva edir.

  • Buradan qovşaqlar necə yarada bilərəm? Uzunluq, enlik cütlüklərinin hər biri mənim düyünlərimdirmi? Naviqasiya və marşrutlaşdırma üçün belə edilirmi? Hər nöqtə üçün səmərəli döngə səslənmir və bir düyün yaradır! Yoxsa xəritədəki xüsusi uzunluq, enlik bütün nöqtələr olmayan qovşaqlar kimi qəbul edilməlidir? Bir növ qaba nümunə götürmək olar?
  • Bu sual əvvəlki sualla sıx bağlıdır. Kenarlarla necə gedirəm? Boylam, enlem cütlükləri qovşaqdırsa, ardıcıl iki cüt arasında bir kənar yaradırammı?
  • Həm də çəkilər üçün, bu vəziyyətdə Temperatur, uyğun çəkiləri təyin etmək üçün bütün bu kənarları yenidən döndərməliyəm?
  • Bəs vaxt? Düşünürəm ki, heç bir təsiri yoxdur? Çünki keçmişdə yol göstərməklə maraqlanmıram. Önəmli olan və ya gələcəkdə ML -dən istifadə ilə bağlı proqnoz verməyə gedsəm (hələlik kritik deyil!).

Artıq bir müddətdir öyrənmişəm və bu köhnə sual kimi bir çox təkliflə və ya NetworkX kimi əvvəllər və ya Gephi kimi vasitələrlə və digər dərslərlə tanış olmuşam, ancaq bu cür coğrafi məlumatlardan qrafiki asanlıqla necə yaradacağımı anlamıram. Xəritələr geniş istifadə etdiyindən (bəlkə də açıq mənbədən deyil) bu, artıq yaxşı qurulmalı idi. Dərsliklərdə və ya blog yazılarında gördüyüm şey anlayışları intuitiv şəkildə izah etmək və ya yuxarıda göstərilən çox sadə bir qrafik üçün tətbiqlərdir və ya bunlar coğrafi məlumatlar ilə əlaqəli deyil.

Hər hansı bir kömək və ya şərh və ya necə tətbiq olunacağına dair təlimatlar təqdir olunur. İdeal olaraq, CSV -dən Graph yaratmağa necə gedəcəyimi bilmək istərdim ki, ən qısa yol algosunu yerinə yetirim.

09.10.2019 YENİLƏNİB: Brian Spiering -in möhtəşəm cavabından (aşağıya bax) çox ilhamlanaraq, axtarışa davam etdim və 2017 -ci ildə Helsinki Universitetində bir neçə kursla rastlaşdım, məsələn, OpenStreetMap məlumatlarından birbaşa alınan küçə qrafiklərindən istifadə edərək tonlarla zəhmli əşyaların necə ediləcəyini öyrətdim. bura bax. Bağlantıda görə biləcəyiniz kimi OpenStreetMap məlumatlarını yükləmək və görselleştirmek üçün asan bir erişim təmin edən zəhmli bir Python paketi osmnx var. Yaxşı xəbər budur ki, bütün bu qrafiklər Python NetworkX ilə uyğundur, yəni istədiyinizi edə bilərsiniz. Xəritələr kimi ən qısa yolu tapın. Osmnx geliştiricisi, çox faydalı və maraqlı tapdığım NetworkX ilə birlikdə osmnx -dən necə istifadə olunacağına dair bir çox nümunə təqdim edir, mütləq yoxlayın (osmnx nümunələrinə keçid).

Konkret olaraq, bir neçə kod sətirində aşağıdakıları edə bildim (ehtiraslı oxucular üçün):

Diqqət yetirin ki, burada marşrut qrafikdəki hər bir qovşağa (bir cüt enlem və uzunluq) təyin edilmiş osmid nöqtələrinin siyahısıdır (həm də mənbə və təyinat girişinə əsaslanırdı! Girişləri birbaşa bir cüt eni olaraq təmin edə bilərsiniz və Boylam (qrafikdə tapılan ən yaxın qovşaq əsasında) kimi:

Yolu məsafəyə (burada uzunluğa görə) minimuma endirmək üçün bunu daha da uzada bilərsiniz:

Hal -hazırda kənar üçün əlavə çəki (mənim vəziyyətimdə Temperatur) necə əlavə edəcəyimi araşdırıram Son Məqsəd! Ən qısa məsafə mühasibat uçot dərəcəsi empedansını göstərdikləri osmnx dərsliklərindən birinə əsaslanaraq bəzi fikirlər alıram.


Obyekt yönümlü proqramlaşdırmada əsas fikir, funksiya və hərəkətləri tətbiq edə biləcəyiniz obyektlərə sahib olmaqdır və heç bir obyekt və ya proqram vəziyyəti qlobal olmamalıdır (məsələn, MATLAB kimi API). Bu yanaşmanın əsl üstünlüyü birdən çox fiqur yaradıldıqda və ya bu təlimatda görəcəyimiz kimi bir rəqəmin birdən çox alt planı olduqda aydın olur.

Obyekt yönümlü API-dən istifadə etmək üçün yeni bir rəqəm nümunəsi yaratmalı və onu bu dəyişən əncir adlandırdığımız dəyişəndə ​​saxlamalıyıq, ancaq hər hansı bir ad seçə bilərsiniz. Əslində birdən çox fiqur yaratdığımız zaman etməmiz lazım olan budur!

Rəqəm bir neçə süjetdən ibarət ola bilər (buna alt sahələr də deyilir), buna görə etməli olduğunuz ilk şey, fiqurunuzun neçə alt süjetdən ibarət olacağını seçməkdir. Bu rəqəm tipli bir obyektin add_subplot metodu ilə edilir:

Burada yalnız bir alt sahə və bir balta yaratdıq. Add_subplot funksiyasının arqumentlərini daha ətraflı izah etmək üçün daha sonra başqa bir nümunə verəcəyik.

Sonra baltalarımızı alt planımızı fərdiləşdirmək və nəhayət məlumatları qurmaq üçün istifadə edirik. Məsələn, əlavə edə bilərik:

  • alt sahəmizin adı
  • x oxu və y oxu üçün bir başlıq
  • x oxu və y oxu üçün seçilmiş yerdə gənələr


Addplot əmrləri üçün hər hansı bir stil düyməsi olmadıqda, standart dövrü siyahısı (v1.11 pgfplots təlimatının 4.7.7 -ci hissəsində sənədləşdirildiyi kimi rəng) istifadə olunur:

Hər hansı bir stil düyməsi təyin edildikdən sonra addplot [red] & lt. & gt, standart dövr dövrü siyahısı artıq bu süjet üçün istifadə edilmir (lakin nümunədə göstərildiyi kimi, dövrün siyahısındakı & quot; nöqtəsinin & quot; hələ də & quotconsumed & quot olduğunu müşahidə edin):

Alternativ süjet əmri addplot+ istifadəçiyə imkan verir əlavə etmək Dövr siyahısı tərəfindən təyin olunan bütün üslubları ləğv etmədən üslub seçimləri. Misal üçün:

Beləliklə, istədiyiniz süjet tərzi üçün (eyni rəngli dolu dairəvi işarələrlə qırmızı) hər iki yanaşmadan istifadə edə bilərsiniz:

Bir şərhdəki istəyinizə gəldikdə, pgfplots -da mövcud olan markerlərin və xətlərin tam siyahısı təlimatın 4.7 -ci hissəsindədir. Bölmə 4.7.1 markerləri və onları üslublaşdırmaq üçün mövcud variantları sadalayır, Bölmə 4.7.2 isə xətt üslubları üçün eyni şeyi edir.

Hər bir fərdi süjet əmrinin üslubunu təyin etmək əvəzinə, hər bir ardıcıl süjet əmrinin üslubunu təyin etmək üçün istifadəçi tərəfindən müəyyən edilmiş və ya əvvəlcədən təyin edilmiş dövr siyahılarından istifadə etmək mümkündür. Varsayılan dövrün siyahısı ilk nümunədə göstərildi. Budur ekzotik, əvvəlcədən təyin edilmiş başqa bir dövr siyahısı.

Əvvəlcədən təyin edilmiş dövr siyahıları üçün digər seçimlər təlimatın Bölmə 4.7.7-də sənədləşdirilmişdir və bu hissənin ikinci yarısı öz dövrü siyahılarınızı təyin etmək üçün sintaksisini izah edir. İstifadəçi tərəfindən müəyyən edilmiş bir dövrə siyahısı sənəd başına bir dəfə təyin edilə bilər və bu sənəddəki bütün sahələr üçün istifadə edilə bilər. Bu şəkildə, üslubla əlaqədar fikrinizi dəyişdirsəniz, tərifi yalnız bir dəfə yeniləməlisiniz və bütün süjetlər də buna uyğun olaraq yenilənəcəkdir.


MATLAB -da bir xəritədə Coğrafi Məlumat çəkin

MATLAB ®, bir MATLAB rəqəminin içərisində coğrafi bir əsas xəritənin üstündə məlumat qurmağı asanlaşdırır. Coğrafi əsas xəritələrin üstündəki nöqtələri, xətləri, mətni, sıxlıq sahələrini və baloncuk qrafiklərini göstərmək üçün MATLAB -da coğrafi qurma funksiyalarından necə istifadə edə biləcəyinizi öyrənin. MATLAB-da mövcud olan bir sıra əsas xəritələrdən seçin və ya bir sıra üçüncü tərəf mənbələrindən ixtisaslaşdırılmış veb xəritələri yükləyin. Və daha inkişaf etmiş xəritələr yaratmaq, geodeziya hesablamaları aparmaq və ya coğrafi fayl növləri ilə işləmək lazımdırsa, Xəritəçəkmə Toolbox ™ -u yoxlayın.

Coğrafi ekranlar, enlem ve boylam komponentləri olan məlumatlara fikir verir. MATLAB -da coğrafi məlumatlarınızı x və y planı olaraq göstərə bilsəniz də, təhrif edilmiş görünəcək və siyasi sərhədlər, yollar və digər coğrafi xüsusiyyətlər kimi heç bir kontekstli məlumat içerməyəcək.

MATLAB -da coğrafi baza xəritələri coğrafi məlumatlarınızı tərtib edərkən bu fon kontekstini təmin edə bilər. Bunlar, sahənizin fərqli bölgələrini gəzdirməyinizə və böyütməyinizə imkan verən, eyni zamanda avtomatik olaraq yeni əsas xəritə görüntüləri yükləyən, kirəmitli, çox qətnaməli veb xəritələrdir.

MATLAB, bir MATLAB rəqəminin içərisində coğrafi bir əsas xəritənin üstündə məlumat qurmağı asanlaşdırır. MATLAB rəqəmində edə biləcəyiniz iki növ coğrafi xəritə var. Ən sadə, adi MATLAB baltaları kimi davranan coğrafi oxlardakı bir süjetdir. Nöqtələri, xətləri, mətni və sıxlıq sahələrini bir coğrafi məkanda qarışdırmaq üçün gözləmə əmri ilə birlikdə tərtib funksiyalarından istifadə edin. Budur, bu tip planların bir nümunəsi. Əvvəlcə sıxlığımızı, xəttimizi və nöqtə məlumatlarımızı görselleştirmek üçün geodensityplot, geoplot və geoscatter istifadə edəcəyik. Sonra məlumatların görünüşünü fərdiləşdirə bilərik, əsas xəritəni və məhdudiyyətləri dəyişə bilərik və süjetə mətn, əfsanə və başlıq əlavə edə bilərik.

MATLAB -da ikinci növ coğrafi xəritələr, baloncuk ölçüsünə görə davamlı bir dəyişən və baloncuk rənginə görə kateqoriyalı bir dəyişən göstərə bilən coğrafi baloncuk diaqramıdır. Bu, həm baloncuk, həm də kateqoriyalı əfsanələr təqdim edən xüsusi bir qrafik növüdür.

MATLAB-ın qlobal və regional miqyaslı əsas xəritələri vebdən yüklənir, lakin məlumatlar internet bağlantısı olmadan istifadə etmək üçün MATLAB Əlavələrindən də yüklənə bilər. Küçə səviyyəsindəki məlumatlar, topoqrafiya və ya digər ixtisaslaşdırılmış baza təbəqə təsvirləri olan veb xəritələr üçüncü tərəf mənbələrindən yüklənə bilər. Mapping Toolbox-da mövcud olan addCustomBasemap funksiyasından istifadə edərək bir sıra üçüncü mənbələrdən veb xəritələri asanlıqla əlavə edə bilərsiniz.

Enlem ve boylam məlumatlarını veb xəritənin əsas qatlarında üst -üstə qoymaq üçün bu funksiyalar MATLAB -da mövcuddur. Daha da irəli getmək lazımdırsa, Xəritəçəkmə Aləti digər proqnozlaşdırılan koordinat sistemlərində məlumatların görselleştirilmesi, sistemlər arasında çevrilmə və məsafələrin və sahələrin hesablanması kimi geodeziya hesablamalarının yerinə yetirilməsi üçün əlavə funksiyalar təmin edir. Xəritəçəkmə Alətləri də, müxtəlif tipli coğrafi fayl növləri, məsələn, shapefiles, GPX faylları və GeoTIFF faylları arasında məlumat oxumağa və yazmağa imkan verir.


Depoyu klonladınız və ya endirdinizsə, bu nümunələri testlər qovluq.

Məkan məlumatları olan CSV -ləri yükləyin.

Müxtəlif həndəsə sütunları olan CSV -ləri idarə edin.

Fərqli məkan istinadları olan CSV -ləri idarə edin.

Geopy və pysalda olduğu kimi geodezik məsafəni istifadə edən alqoritmlərlə uyğunluq üçün LONGITUDE_LATITUDE_PROJ4 istifadə edin. Geodeziya məsafəsi qövs məsafəsi olaraq da bilinir və Yerin əyrisi ilə ölçülən iki nöqtə arasındakı məsafədir. Yerləriniz böyük bir coğrafi əraziyə yayılırsa, geodeziya uzunluq və enlem koordinatları, Öklid XY koordinatlarından daha yüksək dəqiqlik təmin edir.

Universal Transverse Mercator (UTM) proyeksiyasından istifadə edərək XY koordinatlarında Evklid məsafəsini istifadə edən alqoritmlərlə uyğunluq əldə edin, məsələn scipy.spatialda. Yerlərinizin kiçik bir bölgə ilə məhdudlaşdığını bilirsinizsə, proqnozlaşdırılan XY koordinatlarını geodezik variantlarından xeyli sürətli olma meyli olan standart Evklid əsaslı alqoritmlərlə istifadə edə bilərsiniz.

Vizualizasiya dəqiqlikdən daha vacib olduqda Sferik Merkator proyeksiyasından istifadə edin. Bu proyeksiyanı məkan dəqiqliyinin vacib olduğu alqoritmlər üçün istifadə etməyin.

Məkan vektorlarınızı Jupyter Notebook -da göstərə bilərsiniz çəkmək funksiyası. Hər bir həndəsə təbəqəsi fərqli bir rəngdə görünəcək.

İstifadə edə bilərsiniz Rəngli Geometriya Kolleksiyası birbaşa Jupyter Notebook -da.


Yenidən qaldırılmayan bir cəhd/istisna istifadə etməyin yeganə məqsədi, bir IOErrorun olub-olmamasının əhəmiyyəti olmasa olardı. Ancaq bu vəziyyətdə, bir IOError baş verərsə, qeyd ediləcək, sonra nəzərə alınmayacaq və sonra return bir "NameError" qaldıracaq - bu "məlumat" müəyyən edilməmişdir. Boş nəticələrdə bir səhv qaldırdığınız üçün zəngi qəbul etdiyinizi və ya prosesi dayandırmasını istədiyinizi düşünürəm. Hər iki halda belə bir şey edərdim

Ayrıca, yalnız oxuyursanız açıq quruluşa ehtiyac yoxdur. Fayl obyekti ilə birdən çox iş görsəniz açıq olaraq seçilir, buna görə də düzgün bağlanır. Dosyanı dəyişənə açıq təyin etmədən düzgün bağlanacaq və zibil toplanacaq. Açıq saxlayın, çünki zibil toplama heç bir xüsusi davranışa etibar etməməlisiniz.


Mapit GIS - Xəritə Məlumat Toplayıcısı və Ölçmələr

Mapit, sahədəykən məhsuldarlığı artırmaq üçün nəzərdə tutulmuş peşəkar, müstəqil, qənaətli xəritələşdirmə və ölçmə vasitəsidir.

Tətbiq giriş və çıxış üçün ümumi fayl formatlarını dəstəkləyir və ehtiyac duyduğunuzda bir santimetr səviyyəsində dəqiqlik əldə etmək üçün xarici GNSS qəbulediciləri ilə işləyə bilir.

Anket formalarınızı tərtib edin, təbəqələr haqqında məlumatları təşkil edin, mbtiles əsas xəritələri ilə oflayn işləyin, WMS xidmətlərinə daxil olun, xəttinizi və çoxbucaqlı xüsusiyyətlərinizi çəkmək üçün GPS izləmə sistemindən istifadə edin, GNSS meta məlumatlarını qeyd edin və daha çoxunu kəşf edin.

Tətbiq dünyanın hər yerindəki mütəxəssislər tərəfindən geniş istifadə olunur və kənd təsərrüfatı və meşəçiliyindən yol tikintisinə, geologiyaya, torpaq tədqiqatına və günəş paneli həllərinə qədər müxtəlif tətbiqlər üçün asanlıqla qəbul edilə bilər. Fərdiləşdirilmiş parametrlər və rahatlıq, bu proqramı araşdırma iş axınınızı artıracaq məqsəd alətinə uyğunlaşdırır.

Tətbiq, sahələri və ya məsafələri hesablamaq üçün bir ölçü vasitəsi olaraq da istifadə edilə bilər.

Məkanı saxlayarkən əvvəlcədən təyin edilmiş açılan siyahıdan lazımlı atributları seçin, eyni məlumatları təkrar-təkrar yazmağa ehtiyac yoxdur. Mətn fayllarından atributların uzun siyahısını idxal edin və bir çox layihədə yenidən istifadə edin. Gerekirse, hər yerə şəkillər əlavə edə bilərsiniz.

Sahədə işləyirsinizsə, böyük miqdarda məkan məlumatları toplayaraq bu tətbiq sizin üçün hazırlanmışdır.

İş axınınızı sürətləndirin və məlumat toplanmasını daha səmərəli edin. Anket təbəqələrindən və birdən çox sorğu üçün eyni xüsusiyyətlər dəstini yenidən istifadə etmək imkanından istifadə edin. Məlumatlarınızı Esri shapefiles, CSV, KML, geojson, DXF, GPX kimi ümumi GIS formatlarına ixrac edin və qGIS kimi Desktop GIS proqramından istifadə edərək məlumatlarınızı göndərin.
Lazım gələrsə əvvəlcədən təyin edilmiş koordinat sistemlərinin sayı və xüsusi EPSG kodları üçün dəstək.
Mobil Məlumat Toplama Xüsusiyyətləri:

- Əsas xəritələr: Populyar onlayn xəritələr və offline mbtiles,
- Xarici Bluetooth GPS / GNSS qoşulduqda RTK düzəldilmiş koordinatları dəstəkləyir,
- WMS və GIS Server Döşəmə xəritəsi xidmətlərinə dəstək - topoqrafik və ortofoto xəritələri, geoloji tədqiqatlar, kadastr məlumatları və digər xidmətlərin sayını yükləyin.
- Xüsusiyyətlər dəsti yaratmaq və saxlamaq imkanı - bunlar yeni xüsusiyyət yazılarkən açılan siyahılar olaraq mövcuddur, uzun siyahı mətn fayllarından idxal edilə bilər.
- Nöqtəli xəritə işarələri üçün çoxluqlar, performans problemi olmadan xəritədə çox sayda nöqtəyə sahib olmağın səmərəli yolu,
- Hal -hazırda 4 toplama üsulu dəstəklənir (GPS / GNSS yeri, xəritə kursorunun yeri, izləmə, bucaq və məsafədən istifadə edərək nöqtə proyeksiyası),
- Məlumatlarınızı sorğu təbəqələrinə qruplaşdırmaq imkanı - hər bir tədqiqat təbəqəsinin standart xüsusiyyətlər dəsti ola bilər.
- Yerli SD kart və ya uzaqdan ixrac. Hal -hazırda şekiller, KML, CSV, geojson, GPX və DXF ixracı dəstəklənir,
- Dropbox və ya FTP yerinə birbaşa ixrac
- Bir təbəqədə birdən çox nöqtə, xətt və çoxbucaqlı qeyd etmək imkanı,
- Yeni çoxbucaqlı və ya xətti xüsusiyyətlər yaradarkən sahə və ya uzunluq kimi ölçü detalları da mövcuddur.
- GPS / GNSS və peyklərin vəziyyəti,
- Ünvan, yer axtarışı,
- CSV, KML, shapefile və ya geojson faylından nöqtə, xətt və çoxbucaqlı xüsusiyyətləri qata daxil edin,
- Yedəkləmə idarəçiliyi,
- Fayl xüsusiyyətlərini idxal/ixrac etmək və daha çox şey.

İstifadəçilərimiz Mapit -dən çox sayda tətbiqdə uğurla istifadə edirlər:
- Ətraf mühit və meşəlik ərazilərin tədqiqi,
- Meşə təsərrüfatının planlaşdırılması və meşə idarəçiliyi;
- Kənd təsərrüfatı və torpaq təsnifatları və nümunə götürmə,
- Yol tikintisi,
- Torpaq araşdırması,
- Günəş panellərinin tətbiqi,
- Dam örtükləri və hasarlar,
- Ağac araşdırmaları,
- GPS və GNSS ölçmə,
- Sayt araşdırması
- Qar təmizlənməsi

Bizimlə birbaşa əlaqə saxlamaqdan və ya veb saytımızdakı əlaqə formundan istifadə etməkdən çəkinməyin.


Pythonda Kartopiya ilə Coğrafi Görüntülər

Cartopy, coğrafi məlumatların manipulyasiyası və vizualizasiyasında tətbiqlər üçün hazırlanmış bir kartoqrafik Python kitabxanasıdır. Coğrafi vizuallaşdırma üçün istifadə olunan əvvəlki Python kitabxanası olan Basemap Toolkit-in varisidir (saytımızda bir neçə Basemap dərsliyi tapa bilərsiniz: CSV Faylından Coğrafi Xəritəçəkmə, Peyk Görüntüləri Təhlili, GOES-16 Enlem/Boylam Projeksiyon Alqoritmi ). Kartopiya peyk məlumatlarını real xəritələrin üstündə qurmaq, şəhər və ölkə sərhədlərini görselleştirmek, coğrafi hədəflərə əsaslanan hərəkəti izləmək və proqnozlaşdırmaq və coğrafi kodlu məlumat sistemləri ilə əlaqədar bir sıra digər tətbiqlər üçün istifadə edilə bilər. Bu təlimatda Anaconda 3 Cartopy və əlaqəli coğrafi kitabxanaları quraşdırmaq üçün istifadə ediləcək. Kitabxana və coğrafi görselleştirmeye giriş olaraq, Cartopy kitabxanasının uğurla qurulduğunu və düzgün işlədiyini təmin etmək üçün bəzi sadə testlər aparılacaq. Sonrakı dərslərdə: şəkil sənədləri sərhəd kimi istifadə ediləcək, real şəhər küçələri xəritələnəcək və peyk məlumatları təhlil ediləcək.

Anaconda 3 və Cartopy -nin quraşdırılması

Anaconda 3, Python kitabxanalarını və paketlərini möhkəm idarə etdiyi üçün Python platforması olaraq seçildi. Pulsuz, açıq mənbədir və yeniləri quraşdırıldıqca paketləri dinamik şəkildə idarə edir. Bu, geniş şərtlər tələb edən Cartopy kimi kompleks kitabxanalar üçün xüsusilə vacibdir. Başqa bir tövsiyə də budur Mac və ya Linux Cartopy ilə birlikdə istifadə olunur. Səbəb Python -un bir hissəsidir kitabxanalar Windows platformaları ilə mübarizə aparır ətraf mühit dəyişənləri, proqramlı naviqasiya və inzibati icazələrlə bağlı problemlər səbəbindən. Buna görə də Linux və ya Mac əməliyyat sistemlərindən istifadə edilməsi şiddətlə tövsiyə olunur.

Anaconda 3 quraşdırılması

Aşağıdakı quraşdırma prosesi Linux əməliyyat sistemindən Anaconda 3-ün terminal əsaslı quraşdırılması üçündür (burada Ubuntu 19.x istifadə olunur):

2. Yükləmə başa çatdıqdan sonra yüklədiyiniz qovluğa gedin və yazın:

3. Sonra, quraşdırıcı istifadəçidən şərtləri qəbul etməsini istəyəcək, enter düyməsini basın və istənildikdə bəli yazın. Tam yükləmə proseduru üçün Anaconda səhifəsinə daxil olun və təlimatlarına əməl edin: https://docs.anaconda.com/anaconda/install/linux/. Varsayılanlar burada istifadə ediləcək (bütün şərtləri və standart başlanğıcları qəbul etməklə).

4. Quraşdırma "Anaconda3 qurduğunuz üçün təşəkkür edirik" ə çatdıqda - terminalı bağlayın

5. Terminalı yenidən açarkən aşağıdakıları yazın:

6. Ardından, yazaraq Anaconda 3 -dəki mövcud mühitə baxaraq condanın quraşdırıldığından əmin olun:

Bu nöqtədə, Anaconda 3 yerli sistemə quraşdırılmalı və yuxarıdakılar aşağıdakıları çap etməlidir:

Bu, əsas Anaconda 3 mühitinin quraşdırıldığı deməkdir.

Kartof və asılılıqların quraşdırılması

İndi etməli olduğumuz şey tamamilə yeni bir mühit yaratmaq və onu Cartopy kitabxanasına və asılılıqlara uyğunlaşdırmaqdır. Anaconda komandasının Anaconda mühitini yaratmaq, yeniləmək və gəzməkdə çox faydalı olan bir fırıldaqçı vərəqi var. Orada istifadəçilər mühit yaratmaq və dəyişdirmək üçün sürətli terminal əmrləri tapa bilərlər. Kartopiya vəziyyətində, ilk əmr coğrafi Xəritəçəkmə üçün lazım olan bütün kitabxanaları ehtiva edən 'cartopy_env' adlı bir Kartopiya mühiti yaratmağı əhatə edəcək:

İlk komanda 'cartopy_env' mühitini quraşdırır və quraşdırma kanalı olaraq 'conda-forge' istifadə edir. 'Conda-forge' istifadə etmək, istifadəçiyə ziddiyyətli və ya uyğun olmayan kitabxana və ya versiyalar yükləmədən, Anaconda mühitində kitabxanaları dinamik şəkildə saxlamağa imkan verir.

Yeni mühit yaradıldıqdan sonra aktivləşdirilməlidir. Terminala aşağıdakı əmri yazın və işə salın:

İstifadəçi, aşağıdakılara bənzər yeni bir mühitin aktiv olduğu yenilənmiş bir terminal xəttini görməlidir:

Mövcud mühiti yoxlamaq üçün aşağıdakıları yazın:

Bu, ulduz işarəsi ilə mövcud aktiv mühiti çıxarmalıdır *:

Ulduz yeni mühitin yanındadırsa, 'cartopy_env', onda quraşdırma prosesi başa çatdı və düzgün mühit quruldu. Bundan sonra Pythonda proqramlaşdırmanı daha çox yönlü etmək üçün Jupyter Laboratoriyası quraşdırıla bilər. Jupyter Lab, veb interfeysi ilə işləyən və Jupyter Notebook ailəsi ilə əlaqəli bir GUI-dir, bu onu real vaxt görüntüləmə və kodlaşdırma üçün əla bir vasitə halına gətirir. Jupyter çərçivəsi, 'cartopy_env' -in aktiv olduğu fərziyyəsi ilə aşağıdakı komanda ilə yüklənə bilər:

Yuxarıdakı əmr, Jupyter Lab və Jupyter Notebook asılılıqlarını qurmaq üçün yenidən 'conda-forge' istifadə edəcək. Bu ümumi əmr, mühitdən istifadə edərkən lazım olan hər hansı bir yeni kitabxana qurarkən istifadə edilməlidir:

conda quraşdırın -c conda -forge ______

Bu rəsmiyyət bütün kitabxanaları eyni kanalda saxlayacaq və hər hansı bir ziddiyyət və ya uyğunsuzluğun qarşısını alacaq. Jupyter Lab yükləməsi başa çatdıqdan sonra aktiv olan 'cartopy_env' altına aşağıdakıları yazaraq başlayın:

Jupyter Lab indi istifadəçinin yerli veb brauzerində açılmalı və aşağıdakılara bənzəməlidir:

Bu nöqtədə Anaconda 3 və Cartopy test üçün hazırdır. Cartopy -nin quraşdırılması, 'cartopy.crs -i ccrs olaraq daxil edin' yazaraq daha da təsdiqlənə bilər - və skriptin işə salınmasından sonra heç bir səhv yoxdursa, kitabxana və mühit yoxlanılır! Növbəti hissədə Cartopy -ə qısa bir giriş verilir.

Küçə Xəritəsi Kartopu Görüntüləri

Jupyter Lab, bu bölmədə Cartopy tərəfindən istehsal edilən vizual görüntüləri çıxarmaq üçün istifadə ediləcək. Yeni bir proqramla işləyərkən ən sadə başlanğıc nöqtəsi, bilinən şərtlərlə əlaqəli nümunələri sınamaqdır. Maker Portal komandası New York şəhərində (NYC) yerləşir, buna görə də aşağıdakı nümunə açıq küçə xəritəsindən (OSM) istifadə edərək New Yorkdakı ətraf ərazini xəritələşdirmək üçün One World Ticarət Mərkəzinin yerini (40.713, -74.0135) istifadə edir. ) və Kartopiya:

Jupyter Lab Notebook -da çıxan nəticə aşağıdakılarla eyni olmalıdır:

Yuxarıda göstərilən xəritə Açıq Küçə Xəritəsi (OSM) ilə mümkün olan ən yüksək qətnamədir. Nöqtədən bir qədər uzaqlaşdırsaydıq, fərqli bir miqyas dəsti görərdik. Ölçü fərdiləşdirilə bilər, ancaq miqyas artdıqca xəritəni çəkmək üçün lazım olan vaxt da artır. Buna görə avtomatik miqyas funksiyası əlavə olunur.

Səthin foto -realist təsviri olan 'QuadtreeTiles' adlı başqa bir xəritəni sınayaq. Məsələn, yuxarıdakı kodda 'OSM' yerinə 'QuadtreeTiles' əvəz etsək, One World Ticarət Mərkəzinin aşağıdakı görüntüsünü əldə edirik:

Yuxarıdakı şəhərin uğurlu vizualları Anaconda 3 -ün işlədiyini, Kartopiyanın uğurla quraşdırıldığını və testlərimizin dəqiq və təkrar oluna biləcəyini göstərir. Bir Dünya Ticarət Mərkəzində edilən sürətli Google axtarışları, yuxarıdakı anların dəqiq olduğunu və Google Xəritələrdə mövcud olan görüntüləri bir qədər əks etdirdiyini göstərir (illərlə uyğun gəlməyən yeniləmələr istisna olmaqla). Növbəti bölmədə, hava istasyonlarının səpələnmə nöqtələri, Cartopy'nin imkanlarını daha da araşdırmaq üçün ABŞ xəritəsinin üzərində çəkiləcək.

Xəritənin Başında Xal Dağılımı

Avtomatik Səthi Müşahidə Sistemi (ASOS) ilə əlaqəli hava stansiyalarının məlumat bazasını aşağıdakı linkdə tapa bilərsiniz:

ASOS şəbəkəsi, hər dəqiqə temperatur, rütubət, külək istiqaməti, yağış və digər hava məlumatlarını yeniləyən hava stansiyalarının paylanmasıdır. ASOS şəbəkəsi ilk növbədə təyyarə və hava limanlarında havaya qalxma və enmə zamanı hava və təhlükəsizlik haqqında məlumat vermək üçün istifadə olunur. Üstəlik, ASOS stansiyaları peyk alqoritmləri, ədədi hava proqnozu və veb əsaslı hava tətbiqləri ilə əlaqədar araşdırmalarda istifadə edilmişdir. ASOS .txt faylında Amerika Birləşmiş Ştatları və ərazilərinə səpələnmiş 915 stansiya var. 5 -ci sıradan başlayaraq stansiyalar təhlil edilir. Enlem və uzunluq koordinatlarının 10 -cu və 11 -ci sütunlardan çəkilə biləcəyi stansiyalarda 14 sütun var. 'Asos-station.txt' faylı yükləndikdən sonra məlumatlar Python-a təhlil oluna bilər və yerli hava haqqında təfərrüatları tapmaq üçün bir vasitə kimi istifadə edilə bilər. Bu, Cartopy və digər Python kitabxanaları ilə araşdırılacaq.

Aşağıdakı kod ASOS .txt faylını təhlil edir və bitişik Amerika Birləşmiş Ştatlarında (bəzən CONUS adlanır) stansiyaları xəritələyir:

Kod ilə çıxarılan xəritə aşağıda verilmişdir:

Xəritəyə baxan ekranın ölçüsündən asılı olaraq miqyas bulanıq görünə bilər. Daha yüksək qətnamə xəritəsi tələb olunarsa, daha böyük miqyaslı faktor istifadə edilə bilər. Ölçmə faktoru 4, bu veb səhifənin yükləmə müddətini minimuma endirmək üçün istifadə olunur. Buradakı tətbiq üçün yuxarıdakı şəkil kifayətdir. Səpələnmə xəritəsi nəşr məqsədləri üçün istifadə olunurdusa, 6 və ya hətta 7 -yə qədər ölçülənməlidir (bu, daha uzun yükləmə müddətləri və daha böyük görüntü ölçüləri ilə nəticələnir).

Müəyyən bir bölgədəki stansiyaları görmək üçün, məsələn, Nyu -York şəhəri, ərazilər dəyişdirilə bilər (kodun yuxarıdakı NYC dərəcəsini şərh etmədən) və ASOS stansiyaları müəyyən bir sərhəd üçün müşahidə edilə bilər. Və 'Stamen ()' funksiyasında 'ərazi-arxa plan' xəritəsini istifadə etmək əvəzinə, sadəcə olaraq 'ərazi' olaraq dəyişdirin. NYC işi üçün bu aşağıdakılarla nəticələnir:

ASOS stansiyalarının əksəriyyəti hava limanlarında yerləşdiyindən, New Yorkdakı stansiyaların yerini yoxlamaq asandır. Üç böyük hava limanı: LaGuardia, JFK, Newark - hamısının gözlədiyi kimi yuxarıda qırmızı nöqtələr var. Dördüncü nöqtə başqa bir yaxşı qurulmuş yerdədir: Mərkəzi Park. Beşinci və son ASOS stansiyası Teterboro hava limanında yerləşir.

Məkan xüsusilə vacibdirsə, hər bir stansiyanı müəyyən etmək üçün xəritəyə mətn şərhləri əlavə edilə bilər. Bu aşağıdakı süjetdə edilir:

Bu süjeti mətn şərhləri ilə təkrarlamaq üçün kod aşağıda verilmişdir:

Nəticə

Cartopy, Python -un bir çox vizual alət qutusunun bir hissəsi olaraq mövcud olan güclü bir kartoqrafik kitabxanadır. Bu təlimatda, Linux əsaslı sistemlərdə coğrafi Xəritəçəkmənin xüsusi tətbiqinə uyğun olaraq Anaconda 3 və Cartopy üçün quraşdırma prosedurları verilmişdir. Yuxarıdakı ilk tətbiq bölməsində, verilən coğrafi koordinatlar üçün küçə xəritələri tərtib edilmişdir. Bir Dünya Ticarət Mərkəzi iki fərqli küçə xəritəsində xəritələndi: biri çəkilmiş və biri görüntü əsaslı. İkinci tətbiqdə, Avtomatik Səthi Müşahidə Sistemi (ASOS) koordinat nöqtələri, həqiqi məlumatları Cartopy imkanlarına tətbiq etmək üçün bitişik Amerika Birləşmiş Ştatları boyunca xəritələndirildi. Və nəhayət, ASOS koordinatları daha böyük Nyu York şəhərindəki mətn şərhləri ilə araşdırıldı. NYC -də hər bir koordinatla əlaqəli adlara baxaraq və hər birini yaxınlıqdakı hava limanına və ya hava stansiyasına aid edərək beş ASOS koordinatı təsdiq edildi. Qarşıdakı dərslərdə, Cartopy, xüsusən şəhərlərin şəkillərini və peyk məlumatlarını əhatə edən real dünya tətbiqləri üçün araşdırılmağa davam edəcək.


PySparkda plan qurursunuz?

PySpark -da plan qurmaq üçün üsullar axtarırdım.

PySpark -da DataFrame -də yerləşən məlumatların qurulması ilə bağlı heç bir mənbə tapa bilmədim. Sadalanan üsullar bunlardır:

  • məlumatları 'yerli' Python seansına və süjetinə gətirən collect () metodu vasitəsilə
  • məlumatları 'yerli' Pandas Dataframe -ə çevirən toPandas () üsulu ilə.

Problem ondadır ki, hər ikisi də çox vaxt aparan funksiyalardır. Spark sessiyasında olan məlumatları (yerli seansa idxal etmədən) birbaşa qura biləcəyimiz hər hansı bir üsul varmı?