Daha çox

ArcGIS Desktop üçün Açıq Mənbə Python/ArcPy Kodunu və Modellərini Paylaşırsınız?

ArcGIS Desktop üçün Açıq Mənbə Python/ArcPy Kodunu və Modellərini Paylaşırsınız?


ArcPy ilə Pythonda ArcGIS Desktop üçün skriptlər yazacağam.

Kod və modellərin paylaşıla biləcəyi bir cəmiyyət və ya açıq mənbə layihəsi varmı?


Nəyi bölüşmək istədiyinizi həqiqətən bilməyincə yəqin ki, sadəcə GitHub -a qoyardım. Hətta ESRI da GeoIQ əldə etdikdən sonra bu qrupun üstünə atlamağa başladı.


Bunun üçün ESRI icması əvvəllər ArcScripts adlanırdı, sonra ESRI bunu Kod Qalereyaları lehinə yeni təqdimatlara bağladı və indi ArcGIS 10.1 -in (ehtimal ki, onu yenicə əldə etmisinizsə ehtimal ki, sizdə olan versiya) buraxılması ilə Kod Qalereyaları ArcGIS Online -a. Əşyalarınızı köhnə Kod Qalereyalarından yeni sistemə köçürmək üçün burada bir sıra təlimatlar var, əgər ilk addımı görməməzlikdən gəlsəniz (mövcud əşyalarınızı yükləsəniz), qalan təlimatlar sizə kodu, alətləri, xəritələri necə yükləməyinizi izah edəcək. və s. və digər ESRI istifadəçiləri ilə paylaşın. (Pulsuz) bir ArcGIS onlayn hesabına ehtiyacınız olacaq.


Esri host, ArcGIS Kod Paylaşımı veb saytında istifadəçi tərəfindən yaradılan kodu, modelləri və tətbiqləri yükləyə bilər:

Kod, skriptlər, modellər, əlavələr, vidjetlər və daha çoxunu axtarın, gözdən keçirin və istifadə edin.

ArcScripts və ArcGIS Kod Qalereyalarının varisidir.


ArcPy Cafe, bəzi ssenarilər və bir çox məsləhət üçün getmək üçün yaxşı bir yerdir:

Bütün ArcGIS Python Reseptlərinizi burada əldə edin!


Artıq qeyd edildiyi kimi, Github əla seçimdir. Əlbəttə ki, ən böyük cəmiyyətə malikdir.

BitBucket -də bir şey də edərdim. Mercurial (hg) təftiş idarəetmə vasitələrini Bitbucket -in də dəstəklədiyi git -dən daha asan başa düşməyi və istifadə etməyi düşünürəm. (Mercurialın təbii olaraq python, böyüdüyü cəmiyyət və yazıldığı dil ilə uyğunlaşmasına kömək edir. Hər halda mənə kömək edir ;-)

Seçiminiz nə olursa olsun, paylanmış versiya idarəçiliyinin və hostingin yalnız bölüşdürülməsi/birləşməsi/paylaşılması, qızıl örtüklü elektronlarla çəkisinə dəyər (çox gərgin metafora çatmaq üçün ...) satıcı müstəqilliyi.


ESRI -dən "rəsmi" kod paylaşma saytlarından biri http://codesharing.arcgis.com/. Bu, skriptlər üçün olan vasitələr üçündür, çünki skriptlər ümumiyyətlə tək bir iş axını və mühitə xasdır və buna görə də paylaşmaq faydasızdır.

Python skriptləri üçün (IMHO modellərdən daha asan paylaşılır), bir çox faydalı məsləhət və nümunə tapa biləcəyiniz Arcpy Café -yə də baxa bilərsiniz.

@Mapperz tərəfindən qeyd edildiyi kimi, GeoNET -də bəzi şeylər tapa bilərsiniz

Nəhayət, bu (GIS SE) saytını arcpy və ya modelbuilder etiketləri ilə axtara bilərsiniz və bu sizə çoxlu kod alt dəstləri verəcəkdir.


CBS/ Ətraflı GIS layihələrində hər hansı bir Python dərsliyi

GIS -də Python və ya GIS layihələrini inkişaf etdirmək üçün hər kəsdən yaxşı dərslər və ya şeylər öyrən. İstənilən bağlantılar, dərsliklər və ya fikirlər həqiqətən təqdir ediləcəkdir. Və ya GIS mövzuları ilə əlaqədar araşdırmalı olduğum tövsiyələr.

Bu sahədə inkişaf etmək üçün edə biləcəyiniz ən yaxşı şeydir. İnanın, bunu yaxşı və səylə etsəniz, bir ton öyrənəcəksiniz və öz kompleks layihələrinizi edə biləcəksiniz. Bu, Helsinki Universitetinin 's ધ GIS proseslərinin python ilə avtomatlaşdırılmasıdır. Ümid edirəm bu kömək edir!

Düzəliş: mükafat üçün təşəkkürlər :)

Bunu paylaşdığınız üçün təşəkkür edirəm. OP kimi, mən də CBS -də Python bacarıqlarımı daha da gücləndirmək istəyirdim. Python kursu ilə edX Girişini Python kursu ilə bitirdim, amma buna baxmayaraq ümumi kursu GIS ilə əlaqələndirmək çətin olduğunu gördüm.

Tamam, buna başlamışam, amma bu qədər yaxşı olduğuna əmin deyiləm. Ancaq tövsiyə etsəniz, bunu etməyə çalışacağam.

python ilə tanış olan, lakin hələ də yeni başlayanlar üçün bu yaxşıdırmı? yoxsa dərsləri həqiqətən başa düşmək üçün python ilə rahat olmalısınız?

Bunu düzgün başa düşürəmmi? Bu pulsuzdur?

Bunu paylaşdığınız üçün çox sağ olun. Python -a da yeni başlamışam. GIS -ə tətbiq etməzdən əvvəl dilin əsaslarını öyrənmək. Bunu sonraya saxlamaq

Biliyi inkişaf etdirmək, bir universitetin qazancını artırmağa çalışmamalı olduğu kimi olmalıdır

Helsinki Universitetini GeoPython kursunu yeni bitirdim (https://geo-python.github.io/site/index.html) və indi yuxarıda qeyd etdiyiniz bu sahəyə dalıram. Python və açıq mənbə problemlərinə hətta məkan məlumatları problemlərinin ötəsində çox ətraflı bir giriş olduğunu qəbul edirəm. Daha sonra öyrənmək üçün biliklərin necə tətbiq olunacağına dair başqa bağlantılar və ya fikirlər təklif edə bilərsinizmi? Bəlkə ev heyvanları layihəsi fikirləri? Təəssüf ki, işdəki vəzifələrin həcmi hələ də python istifadə etməyi əsaslandırmır.

Bu məsləhət daha çox qövs üçündür, amma pythonu belə öyrəndim:

Codecademy və ya hər hansı bir şey kimi onlayn olaraq pulsuz bir python kursu alın. Bu sizə sintaksisini və kodun/dilin & quot; necə işlədiyini & quot; öyrədəcək.

Arcmap/arcpro -da ' edirsiniz və bəzi sadə təhlillər aparmaq üçün bir və ya iki aləti vurmaq üzerəsiniz. Bəlkə bir klip və ya başqa bir şey. Aləti vurmayın. Alət və#x27s səhifəsini onlayn yardım bölməsində tapın. Səhifənin altına gedin və bu vasitəni etmək üçün tam bir python skriptinin 2 və ya 3 nümunəsi olacaq. Pyscripterə və ya hər hansı bir şeyə kopyalayın/yapışdırın, dəyişənləri məlumatlarınıza düzəldin və işləyin. Nəticələrinizi arcmap/arcpro -da yoxlayın. Bir skriptdə bir anda birdən çox vasitəni işə salmaq üçün bunu qurmağa davam edin.


SAGA GIS

Salam!
ArcSAGA Toolboxes daxil olmaqla SAGA 2.2.2 -ni yüklədim. ArcMap -da Arazi Analizi - Hidrologiya yüklədiyim zaman bütün vasitələrin simvollarında qırmızı x işarəsi vardı və adı sadəcə "tool_1", "tool_2",. , "tool_25". Alətlər qutusu Terrain Analysis - Hydrology.pyt -i redaktə etdim və http://pro.arcgis.com/en/pro-app -a uyğun olaraq parametr tipləri açar sözlərini ("GPRasterLayer" kimi) məlumat növü ilə ("Raster Layer" kimi) əvəz etdim. /arcpy/geoprocessing_and_python/defining-parameter-data-types-in-a-python-toolbox.htm.
Bu addımdan sonra alətlər nişanlarında qırmızı x yox oldu, alətlərin adı düzgün göstərildi və onları işlədə bildim. Bir geoprosessing modelinə inteqrasiya etmək istədiyim üçün Upslope sahəsinə qaçdım, amma uğursuz oldu. Saga və qgisdə qaçdım və istədiyim nəticəni əldə etdim. ArcMap -da eyni giriş rasterlərindən (qgisdəki kimi) istifadə etdim, amma alət hələ də uğursuz oldu.
İşdə arcmap -dan qeyd:
İcra olunur: tool_4 targetRaster.tif 0 0 elevationRaster.tif # G: Doctorat upslope_area wgs resultRaster.tif "Birdən çox axın istiqaməti" 1.1
Başlama vaxtı: Salı 08 Dekabr 18:21:30 2015
Skript alətini işə salır_4.

saga_cmd ta_hydrology 4 -TARGET targetRaster.tif -TARGET_PT_X 0 -TARGET_PT_Y 0 -ELEVATION elevationRaster.tif -AREA C: Users user2 AppData Local Temp arc55DD arc_saga_12.sgrd -METHOD MultipON
. SAGA alətini işə sala bilmədi!
Tamamlanmış skript vasitəsi_4.
İcra olunmadı (tool_4).
08 Dekabr 18:21:30 Tue tarixində uğursuz oldu (Keçən Zaman: 0.00 saniyə)

Bu alət qutusundakı bütün digər vasitələr (Terrain Analysis - Hydrology.pyt) eyni şəkildə uğursuz oldu.

Zəhmət olmasa mənə deyin, ArcMap -da Upslope sahəsini işlədə bilmək üçün nə etməliyəm?
Əvvəlcədən təşəkkürlər!


Yerli skriptlərdən müəssisə həllərinə qədər …

Əksəriyyətimiz üçün skript yazmağa və python ilə məşğul olmağa ehtiyac, proqramlaşdırmanın təsadüfən qəbul edilməsinə səbəb oldu. Modellər, skript alətləri, tapşırıqları və sıralamanı avtomatlaşdırdıqca, hələ də yerli rejimdə işlədiyimizi görürük. Bu və ya digər şəkildə, C: və ya D: sürücüləri fikrinə alışdıq və ümumiyyətlə yerli məlumat dəstlərini və fayllarını geoprosessing anlayışı ilə işləməyə başladıq. Üstəlik, çox vaxt sadəcə təkrarlanan, lakin asanlıqla edilə bilən bir sıra işləri asanlaşdırmaq üçün bir neçə sətir kod hazırladıq- xüsusən də məlumat dəstləri maşınlarımızda əsasən yerli fayllar ola bilər.

Bu dərəcədə və önyargı olmadan, biz (formal sistem təhsili olmayan GIS praktikləri) müəssisə düşüncəsi ilə məşğul ola bilmədik. İllərdir ki, İT idarəçiliyi və ən yaxşı təcrübələr, kompüter elmləri metodologiyaları və proqramlaşdırma modelləri bu sənayedə müntəzəm olaraq istifadə olunsa da, GIS, xüsusən daha qurulmuş böyük qardaşının standartları ilə müqayisədə heç bir standarta malik olmayan bir yalançı elm olaraq ortaya çıxdı – O. Yedəklərin, məlumatların təşkili, layihə idarəçiliyi və ən yaxşı təcrübələrin işin vacib bir hissəsi olduğunu çətin şəkildə öyrəndik.

Müəssisə sistemi üçün həllər hazırlayarkən, infrastrukturun mürəkkəbliyinin rol oynayacağını bilməlisiniz. Əvvəlki skriptləriniz girişləri yerli olaraq qəbul etsə də, yerli olaraq emal etsə və yerli olaraq çıxsalar, müəssisə həlləri ilə bağlı doğru olmayacaq. Python skriptlərinin yalnız bir neçə fəndlə necə daha möhkəm edilə biləcəyini araşdıraq.

… yerli, şəbəkə və serverlər …. və bəli sənədlər!

Yerli olaraq server və şəbəkə qaynaqları istehlak edən həll yolunuzu inkişaf etdirmək üçün yaxşı bir şans var. Bu kontekstdə, lazım olduqda bütün mənbələrin mövcud olmasını təmin etməlisiniz. Məsələn, böyük məlumat dəstlərini manipulyasiya edərkən olduqca yaygın olan və sistemlərin müntəzəm texniki xidmət əməliyyatlarına məruz qaldığı vaxtlar, ən azından bu əsas prinsipləri ehtiva etməlidir:


Mücərrəd

Torpaq istifadəsi dəyişikliklərini və ya şəhər artımını simulyasiya etmək üçün hazırlanan zirzəmi avtomatlarına (CA) əsaslanan modellərin əksəriyyəti, reallığı nizamlı hissələrə endirən məkanın raster təsvirini istifadə etdi. Bu yanaşma böyük iş sahələrində simulyasiya edərkən mükəmməl etibarlıdır. Bununla birlikdə, kosmosun vektor təsvirinin istifadəsi kiçik uzantılarda daha faydalı olur, çünki torpaq istifadə örtüklərini daha real bir şəkildə təmsil edirlər. Bu baxımdan, kadastr bağlamalarından istifadə edərək yeni bir vektor CA əsaslı prototip təqdim olunur və daha yaxşı işləklik əldə etmək üçün hüceyrə məkanı qrafik nəzəriyyəsi ilə birləşdirilir. Qonşuluq faktorları daha çevik şəkildə müəyyən edilir, çünki hər bağlama digərlərindən fərqlidir. Əlçatanlıq, uyğunluq və rayonlaşdırma hesablanmış və prototipə və#x27s keçid qaydalarına əlavə edilmişdir. Son onilliklərdə şəhər artımı baxımından ən dinamik məkanlardan biri olan Madrid Cəmiyyətində kiçik bir bələdiyyə prototipi sınamaq üçün seçildi.


3.1 FwDET v2.0 qiymətləndirilməsi

FwDET v2.0 tərəfindən sel sularının dərinliyi təxminləri, Norfolk-Portsmut nümunə işi üçün model simulyasiya edilmiş su dərinliyi ilə yaxşı uyğun gəlir (Şəkil 2). Maksimum daşqın dərinliyi (ən yüksək dəyərə malik olan şəbəkə hüceyrəsi) FwDET v2.0 tərəfindən çox qiymətləndirilir, lakin su dərinliyi rasterləri oxşar ortalamalar (model üçün müvafiq olaraq 0.77 və 0.65 m və FwDET v2.0) və standart sapma (0.56 və 0.58) verir. model üçün müvafiq olaraq m və FwDET v2.0). [FwDET v2.0 - model] xəritəsinin cəbri ifadəsinin raster dəyərlərinin ortalaması ilə hesablanan daşqın sularının dərinliklərində orta fərq 0,9 m standart sapma ilə −0,16 m -dir, yəni FwDET v2.0 sel suyunun dərinliyini bir qədər aşağı qiymətləndirir. Orta mütləq fərq ([| (FwDET v2.0 - model) |]) 0.18 m -dir (modelin orta dərinliyinin 23 % -i) standart sapma 0.28 m. Fərq xəritəsinin (Şəkil 2d) histogram paylanması (Şəkil 2d), grid hüceyrələrinin böyük əksəriyyətinin 0 ilə -0.33 m arasında bir əyilməyə malik olduğunu göstərir və −1 m -dən aşağı və 0.33 m -dən yuxarı qərəzlərin nadir olduğunu göstərir.

Şəkil 2Norfolk -Portsmut Avqust 2011 İren qasırğasının daşqın hadisəsi araşdırması: (a) simulyasiya domeni, məkana ümumi baxış xəritəsi (sağ alt daxil) və panellərdə istifadə olunan böyütmə ölçüləri (b)(d) Lafayette çayı gelgit ağzının üstündə (qırmızı qutu) (b) model simulyasiya edilmiş maksimum su dərinliyi xəritəsi (c) FwDET v2.0 sel sularının xəritəsi (d) panellər arasındakı fərq xəritəsi (b)(c) [FwDET v2.0 - model] (e) fərq xəritəsindəki grid hüceyrələrinin histogramı (d). Fon mənbələri: Esri, DigitalGlobe, GeoEye, i-cubed, USDA FSA, USGS, AEX, Getmapping, Aerogrid, IGN, IGP, swisstopo və GIS istifadəçi cəmiyyəti.

FwDET v2.0 və hidrodinamika modeli ilə su dərinliyi qiymətləndirmələrindəki orta fərq kiçik olsa da, fərq xəritəsi (Şəkil 2d) dəyərlərin heterojen bir qobelenini ortaya qoyur, bəziləri olduqca nəzərəçarpacaq və bir çoxu kəskin (düz xətt) keçidli , su dərinliyi xəritələrində aydın görünmür (Şəkil 2a və b). Su dərinliyini hesablamaq üçün FwDET v2.0 -ın ən yaxın sərhəd hüceyrə yüksəlişinə etibar edirlər. Ən yaxın sərhəd şəbəkəsi hücrəsini təyin etmək üçün Evklid məsafəsinin istifadəsi, bu düz xətt keçişlərinə və məsələn, arxa su təsirlərinin mürəkkəb axın yolları ilə idarə olunduğu su dərinliyindəki qeyri-dəqiqliklərə səbəb ola bilər. Şəhər mühitində küçələr və binalar bu qərəzləri gücləndirə bilər. 1 m lidar DEM -in istifadə edildiyi bu işdə, binaların daha yüksək bir yüksəkliyə sahib olduğu təsbit edildi. Bu, FwDET v2.0-in sərhəd yerləri olaraq təyin etdiyi su basmış ərazidə daşqın olmayan sahələr yaratdı. Nəticədə, yaxınlıqdakı bəzi şəbəkə hüceyrələri səhvən qeyri -real daşqın sərhəd yüksəlişlərini əks etdirən dəyərlər təyin etdi. Bu səhvlər, həqiqi (küçə səviyyəsi) sel sularının hündürlüyü əvəzinə bəzən çoxmərtəbəli binaların damlarının yalan yüksəklik yansımalarından qaynaqlanır. Eynilə, digər strukturlar (məsələn, magistral yollar, üst keçidlər, dayaqlar) bu əhəmiyyətli həddən artıq qiymətləndirmələrə səbəb ola bilər. Bunların təsirləri Şəkil 2d boyunca görünür, lakin binaların ətrafındakı bəzi yerlər əslində qiymətləndirilmədiyi üçün ardıcıl deyil. FwDET v2.0 tərəfindən qiymətləndirilmə ən çox banklar və sahillər yaxınlığında baş verir. Bu, həmin ərazidəki daşqın suyunun həqiqi maksimum daxili həddindən deyil, həqiqi yerli daşqın suyunun hündürlüyünü əks etdirən daha yaxın bir sərhəd şəbəkə hüceyrəsindən ibarət olan bu yerlər üçün təyin edilmiş sərhəd şəbəkə hüceyrələrinə bağlıdır.

FwDET 1.0 ilə müqayisə bu (və ya hər hansı bir sahil) nümunə işi üçün dəyərli deyil. Bunun səbəbi, FwDET 1.0 -in sahil bölgələrində işləməməsi, çünki sahil xəttindəki sərhəd yüksəkliyi su basmış ərazidən daha aşağıdır. Nəticədə sahil xəttinə ən yaxın olan bütün hüceyrələr (daxili sərhədə nisbətən) məlumatsız bir dəyər alırlar.

Şəkil 3Brazos Çayı (Texas) üçün 2016 May ayı daşqın hadisəsi: (a) modelin simulyasiya etdiyi maksimum su dərinliyi (b) FwDET v2.0 təxmin edilən daşqın dərinliyi (c) panellər arasındakı fərq xəritəsi (a)(b) [FwDET v2.0 - model] (d) FwDET v1.0 və v2.0 qiymətləndirmə dəqiqliyi arasındakı müqayisə [| v2.0 - model | - | v1.0 - model | ] (müsbət dəyərlər, FwDET v2.0 tərəfindən daha kiçik önyargını göstərir) (e) fərq xəritəsinin grid hüceyrə dəyərlərinin histogramı (c). Fon mənbələri: Esri, DigitalGlobe, GeoEye, i-cubed, USDA FSA, USGS, AEX, Getmapping, Aerogrid, IGN, IGP, swisstopo və GIS istifadəçi cəmiyyəti.

FwDET v2.0 tərəfindən sel sularının dərinliyi hesablamaları, Brazos çayı nümunə işi üçün model simulyasiya edilmiş su dərinliyinə də uyğundur (Şəkil 3). Maksimum su dərinliyi oxşardır (Şəkil 3a və b). FwDET v2.0 ilə hesablanan orta su dərinliyi, modelin 2.2 m proqnozu ilə müqayisədə 2.1 m -dir. Standart sapma, FwDET v2.0 üçün 2.51 m və model üçün 2.56 m dəyərləri ilə də çox oxşardı. Model ilə FwDET v2.0 su dərinliyi hesablamaları arasındakı fərq orta olaraq -0.16 m [FwDET v2.0 - model] və 0.46 m standart sapma ilə kiçikdir. Norfolk -Portsmut nümunə araşdırmasına bənzər şəkildə, FwDET v2.0 daşqın suyunun dərinliyini bir qədər aşağı qiymətləndirir. Su dərinliyində mütləq fərq 0,31 m -dir (modelin orta dərinliyinin 14 % -i), standart sapma 0,46 m -dir. Brazos nümunə araşdırmasında Norfolk -Portsmut nümunə araşdırması ilə müqayisədə aşağı nisbi qərəz, ehtimal ki, çayın özünün statistik hesablamalara daxil olması ilə əlaqədardır. Çay seqmenti nisbətən dərindir və suyun dərinliyini qiymətləndirmək nisbətən asandır (əsl batimetriyasını nəzərə almadan). Fərq xəritəsinin (Şəkil 3c) histoqram paylanması (Şəkil 3e) göstərir ki, grid hüceyrələrinin böyük əksəriyyəti −0.33 ilə 0.33 m arasında qərəzə malikdir və kiçik bir nisbətdə 1 və daha çox aşağıya malik olan grid hüceyrələri var. -1.33 m.

Fərq xəritəsi (Şəkil 3c) göstərir ki, FwDET v2.0 -da ən böyük qərəzlər əsasən çay kanalı boyunca cəmləşmişdir. Bunlar, ehtimal ki, hidrodinamik model tərəfindən simulyasiya edilən, lakin FwDET topoqrafiyaya əsaslanan yanaşmada ifadə edilməyən hidravlik yamacdan qaynaqlanır. Bu qərəzlər aktiv çay kanalına aid olduğu üçün daşqın tətbiqləri üçün təsirləri azdır. Nisbətən yüksək qərəzli digər bölgələr su basmış sahənin qərb kənarları boyunca yerləşir. Bunlar model domen quruluşunun əsərləridir. Cohen et al. (2018a) və Zhang et al. (2018), iRIC simulyasiya şəbəkəsinin ölçüsü və həlli, simulyasiya sahəsinin kənarları boyunca maye dinamikasına təsir edən istifadəçi tərəfindən əl ilə müəyyən edilməlidir.

FwDET v2.0, ortalama su dərinliyi 1.95 m və mütləq fərqi 0.37 m olan v1.0 üzərində bir qədər yaxşılaşma göstərir. [| FwDET v2.0 - model | - | FwDET v1.0 - model | ], orta dəyəri 0,01 m və standart sapma 0,33 m -dir. V1.0 və v2.0 arasındakı fərqlərin çaylardakı daşqınlar üçün kiçik olacağı gözlənilir. FwDET v2.0 -da kiçik irəliləyiş ilk növbədə ən yaxın sərhəd yüksəlişini təyin etmək üçün fərqli bir vasitənin istifadəsi ilə əlaqədardır (v1.0 -da Fokal Statistika döngəsi v2.0 -da Xərclərin Yerləşdirilməsinə qarşı).

FwDET v2.0 -in işləmə müddətinin yaxşılaşdırılmasını müqayisə etmək üçün Brazos Çayı nümunə araşdırması da istifadə edilmişdir. 10 m qətnamədə, domen, FwDET v1.0 -da Fokus Statistikası döngəsinin 100 təkrarlanmasını tələb edən 2087 × 1816 (3 789 992) şəbəkə hüceyrələrinə malikdir. FwDET v1.0, v2.0 və QGIS versiyaları iki Intel Xenon E5 2670 2.5 GHz prosessoru və 64 GB RAM ilə Windows 7 masaüstündə işlədildi. FwDET v1.0 işləmə müddəti 24 dəqiqə 14 saniyə, FwDET v2.0 işləmə müddəti 1 dəqiqə 33 saniyə və FwDET QGIS işləmə müddəti 49 saniyə idi. Bu, v1.0 və v2.0 arasında 15 faktordan çox bir iş vaxtı təkmilləşdirilməsi və v2.0 ilə QGIS arasında təxminən 2 dəfə daha da yaxşılaşmadır. FwDET QGIS -in daha sürətli işləmə müddəti, C (GDAL, 2019) dilində yazılmış və v2.0 -a bənzər təkrarlanan döngə olmayan GDAL -ın raster kəsmə alətindən istifadə etməsi ilə əlaqədardır. Bu kəsmə proseduru (bütün FwDET versiyalarında istifadə olunur) sel sularının dərinliyinin yalnız su basmış ərazidə göstərilməsini təmin edir (bax Cohen və digərləri, 2018a). FwDET v2.0 ArcGIS skript vasitəsi istifadəçilərə iş vaxtını azaltmaq üçün əvvəlcədən kəsilmiş DEM təmin etməyə imkan verir. Bu, eyni su basması üçün təkrarlanan qaçışlar edildikdə daha çox faydalıdır.


CBS üçün ən yaxşı proqramlaşdırma dilləri

Xəritənin yaradılması və dizayn vasitələrinin modernləşdirilməsindən tutmuş yerin müşahidə üsulunun inkişafına qədər, CİS müxtəlif sahələrdə istifadə olunan başqa cür nəzəriyyəni hərtərəfli bir model halına gətirdi.

CİS -in nə qədər inkişaf etməsindən asılı olmayaraq, müəyyən möcüzələr CİS -dən yaxındır. Bunlardan biri də proqramlaşdırma dilidir. GIS-in doxsan faizinin yüksək texnologiyalı olduğu təfərrüatı nəzərə alınmaqla, Proqramlaşdırma dilləri GIS-in başqa əsas təməlidir. GIS -in inkişaf etməsi üçün skelet çərçivə işini təklif edirlər. Sadə dildə, heç bir proqramlaşdırma dili, GIS yoxdur.

GIS sahəsindəki mütəxəssislər və mütəxəssislər bu həqiqətin fərqindədirlər. Beləliklə, freelancer tapmaq üçün ən yaxşı proqramlaşdırma dillərindən istifadə edirlər. GIS sahəsində yalnız bir ovuc proqramlaşdırma dili istifadə olunur. GIS -də istifadə olunan ən yaxşı proqramlaşdırma dilləri bunlardır:

Python çox məqsədli proqramlaşdırma üçün geniş istifadə olunan yüksək səviyyəli proqramlaşdırma dilidir. Dünyanın ən populyar proqramlaşdırma dillərindən biridir. Bunu öyrənmək asandır və aydın bir sintaksisi var. Bu Handy və mürəkkəb məlumat təhlili plus emal dəstəkləyir.

Çevik sintaksis sayəsində GIS yeni başlayanlar və mütəxəssislər üçün qüsursuz bir skript dilidir. Böyük bir istifadəçi cəmiyyətinə malikdir, həm də onlayn olaraq əldə edilə bilən pulsuz dərsliklər çoxdur.

Lazımsız coğrafi işlənməni avtomatlaşdırmaqla yanaşı insan səhvlərini də aradan qaldırır. Python istifadə edərək avtomatlaşdırma işlərini birləşdirə bilən bir neçə GIS proqramı var, məsələn Arcpy, ArcGIS Python API. Üstəlik, hər hansı bir QGIS istifadəçisi, QGIS -in avtomatlaşdırılması, dəyişdirilməsi və yayılması üçün kiçik Python skriptini yazmağa başlaya bilər və gündəlik iş prosesini başa çatdırmaq üçün daha asan və əlavə əyləncəli bir iş yarada bilər.

JavaScript yüksək səviyyəli proqramlaşdırma dilidir. HTML plus CSS ilə yanaşı, JavaScript, veb saytlarının əsas axını olan World Wide Web məzmununun yaradılmasının üç mərkəzi texnologiyasından biridir, üstəgəl bütün müasir veb brauzerlər bunu plaginlər üçün lazım olmadan dəstəkləyir.

Beləliklə, CBS -də JavaScript istifadə etməyin mənfəəti nədir? Hər bir veb sayt, tətbiq və brauzer JavaScript -i fərqləndirdiyindən xəritələrin paylaşılmasına və məkan tədqiqatına imkan verən veb Xəritəçəkmə tətbiqlərini inkişaf etdirmək qüsursuz bir seçim yaradır. Javascript üzərində qurulmuş bir neçə coğrafi məkan çərçivəsi var, məsələn, OpenLayers, Leaflet plus GeoExt. CBS üçün Ən Yaxşı Proqramlaşdırma Dilləri üçün freelancerlər tapa bilərsiniz.

R, açıq mənbə proqramlaşdırma dilidir, eyni zamanda statistik hesablama və qrafika üçün proqram mühitidir. R proqram mühiti üçün mənbə kodu əsasən C, FORTRAN və R ilə yazılmışdır.

R, GNU Ümumi İcma Lisenziyası altında sərbəst şəkildə əldə edilə bilər. R, geostatistika, qrafik dizayn, məlumat elmi və üstəgəl coğrafi tədqiqatlar üçün mükəmməl bir proqramlaşdırma dilidir. QGIS və ArcGIS skriptləri R -də çap edilmişdir.

Verilənlər bazası olmadan GIS CİS olmayacaq. SQL, CBS -də əsas verilənlər bazası proqramlaşdırma dilidir. SQL ən çox tanınan verilənlər bazasına giriş və idarəetmə dilidir. SQL, coğrafi məlumat bazaları ilə işlədiyinizi və coğrafi məlumatları təsir etməyinizə kömək edə biləcəyiniz üçün GIS üçün çox vacibdir. SQL, daxil olanlardan həssas məlumatları qoruyan möhkəm məlumat təhlükəsizliyi örtükləri ehtiva edir.

SQL verilənlər bazası giriş və nəzarət dili olaraq istifadə olunur. SQL bir çox GIS prosesinin əsasını təşkil edir. SQL, uzun müddət davam edən bir dilin həddindən artıq nümunəsidir. Niyə bu? Əvvəlcə prosedur yerinə deklarativdir. Yəni SQL bəyannamələri, necə olmasını istədiyinizi deyil, nə istədiyinizi söyləyir. Beləliklə, tətbiq detalları gizlidir və zamanla dəyişə bilər. Bu, SQL -in sərbəst işçiləri onlayn işə götürmək üçün eyni vaxtda işləmə dünyasına aid olmağa davam etməsi deməkdir.

Java, eyni vaxtda, sinifə əsaslanan və obyekt yönümlü ümumi məqsədli bir kompüter proqramlaşdırma dilidir. Bu Android tətbiqləri üçün proqramlaşdırma dilidir. Java kitabxanalarımızı və GeoServer, GeoTools, JTS plus GeoWebCache oxşar vasitələri çatdırdı.

Java, xəritə serveri üçün mükəmməl proqramlaşdırma dilidir. Java'nın maksimum əhəmiyyətli üstünlüklərindən biri, sadəcə bir kompüter sistemindən əlavə sistemə keçmə qabiliyyətidir. Bənzər proqramı bir neçə fərqli sistemdə işlətmək World Wide Web proqramı üçün həyati əhəmiyyət kəsb edir, üstəgəl Java, mənbə və ikili səviyyələrdə birlikdə platformadan müstəqil olaraq inkişaf edir. Java Java ümumiyyətlə veb proqramlaşdırma üçün çox geniş yayılmışdır və bir neçə proqramçı üçün ümumi seçim dilidir. Məsələn, Geo Server plus JTS (Java Transaction Service) layihəsində istifadə edilən ən geniş yayılmış açıq mənbə GIS dilləri üçün namizədlərdən biridir. Java məktəblərdə ən çox öyrədilən dildir və bəlkə də ümumiyyətlə proqramlaşdırma dilləri üçün təpənin indiki kralıdır.

Java ümumiyyətlə veb proqramlaşdırma üçün çox geniş yayılmışdır və bir çox proqramçıdır və ümumi seçim dilidir. Məsələn, Geo Server və JTS layihəsində istifadə edilən ən geniş yayılmış Açıq Mənbə GIS dilləri üçün namizədlərdən biridir. Java məktəblərdə ən çox öyrədilən dildir və bəlkə də ümumiyyətlə proqramlaşdırma dilləri üçün zirvənin kralıdır. CBS üçün ən yaxşı proqramlaşdırma dilləri üçün onlayn olaraq freelancerləri işə götürə bilərsiniz.

C#, sadə, müasir, obyekt yönümlü ümumi məqsədli, proqramlaşdırma dili olaraq düşünülmüş bir proqramlaşdırma dilidir. Bu dil, dövriyyədə olan atmosferlərdə yerləşdirilməsi üçün uyğun proqram komponentlərinin hazırlanmasında istifadə üçün nəzərdə tutulmuşdur. C# -in üstünlüyü obyekt yönümlü olmasıdır. Başqa növ təhlükəsizdir. Birləşmə fikri versiya idarəetmə problemini yaxşı həll edir və C ++ proqramçısını narahat edən yaddaş sızması kimi çətinliklərə diqqət yetirməyi tələb etmirsiniz.

C ++ C Family proqramlaşdırma dilinə uyğundur. Proqramın topdan satışı C ++ dilində yazılmışdır. Bu səbəbdən firmalar hələ də C ++ istifadə edərək proqram hazırlamağı üstün tuturlar. GRASS GIS, QGIS plus bir neçə digər GIS proqramı C ++ istifadə edərək çap edildi. Bundan əlavə, maksimum GPS alıcılarının firma məhsulları C ++ ilə yazılmışdır.

Bu, son vaxtlar daha çox populyarlaşan köhnə bir dildir. Ruby, verilənlər bazası dəstəkli bir tətbiq qurmağı asanlaşdıran Ruby on Rails sayəsində əsas tutuşa sahib oldu. Bu, GeoCommons vasitəsi ilə veb xəritələrə uzanmışdır (link xaricindədir). OpenStreetMap plus WeoGeo kimi bir neçə maraqlı neo-coğrafiya veb saytı da Ruby-də aparılır.


ArcGIS planları

Bu kitab, ArcGIS Desktop proqram inkişaf etdirmə bacarıqlarınızı növbəti səviyyəyə qaldırmaq üçün təsirli bir bələdçidir

Yaratacağınız bir çox tətbiq üçün konteyner kimi xidmət edəcək ArcGIS Desktop Python alət qutularının necə yaradılacağına dair ətraflı təsviri və nümunələri təqdim etməklə başlayır. Yerli bir ərazinin/icma xəritəsinin qurulması və meşə yanğınları haqqında məlumatların çıxarılmasını əhatə edən bir neçə praktiki layihə təqdim edirik. ArcGIS REST API -dən istifadə edərək ArcGIS Server -dən məlumat əldə edə biləcək alətlər qurmağı öyrənəcəksiniz. Əlavə olaraq, əlavə açıq mənbə Python kitabxanalarının tətbiqlərinizə inteqrasiyası ilə məşğul oluruq ki, bu da inkişaf etmiş GUI inkişafını JSON, CSV və XML formatlı məlumat mənbələrinin Google Earth Pro -ya yazmaq və daha çoxunu oxumaq və yazmağa kömək edəcək. Yolda, qabaqcıl ArcPy Xəritəçəkmə və ArcPy Data Access modulu texnikaları ilə tanış olacaqsınız və xəritə kitablarının yaradılmasını avtomatlaşdırmaq üçün məlumatlara əsaslanan Səhifələrdən istifadə edəcəksiniz.


Oxşar Kitablar

Nümunə ilə ArcGIS & emsp

ArcGIS, xəritələr və coğrafi məlumatlarla işləmək üçün bir coğrafi məlumat sistemidir. İnteraktiv xəritələr yaratmaq və paylaşmaq üçün açar teslim həlli hesab olunur. ArcGIS, işlədiyiniz şəkildə işləmək üçün hazırlanmışdır. Qurmaq və qurmaq üçün heç bir şey olmayan ArcGIS, işinizi ilk gündən məhsuldar etməyə kömək edir. Kitab dizaynı əhatə edir.

Qiymət: $44.99 & emsp | & emsp Nəşriyyat: Packt Nəşriyyatı & emsp | & emsp Buraxılış: 2015

Server və emsp üçün ArcGIS idarə olunur

ArcGIS for Server, coğrafi cəhətdən aktiv məlumatları birdən çox mənbədən vahid bir platformaya gətirmək və xidmətlərin paylaşılması üçün hazır etmək üçün hazırlanmış yeni bir texnologiyadır. Server bir çox xidmət növünü dəstəkləyir və bu texnologiyanın gözəlliyi, məlumat mənbəyi olaraq digər məhsullardan üstün olmasıdır.

Qiymət: $29.99 & emsp | & emsp Nəşriyyat: Packt Nəşriyyatı & emsp | & emsp Buraxılış: 2014

ArcGIS və emsp ilə Veb Tətbiqləri Yaratmaq

ArcGIS, istifadəçilərə Server və ArcGIS Online üçün ArcGIS -də yerləşdirilən xidmətlərlə qarşılıqlı əlaqədə olan zəngin xəritələr və tətbiqlər yaratmağa imkan verir. Bu kitab, real həyat layihəsi qurarkən ArcGIS JavaScript API-ni əyləncəli bir şəkildə başa düşməyinizə kömək edəcək. Səyahət enmə ilə başlayır.

Qiymət: $14.99 & emsp | & emsp Nəşriyyat: Packt Nəşriyyatı & emsp | & emsp Buraxılış: 2014

Masaüstü yemək kitabı və emsp üçün ArcGIS

tərəfindən Daniela Cristiana Docan

Masaüstü üçün ArcGIS, Esri ArcGIS platformasının ən güclü komponentlərindən biridir. İstifadəçilər, çox güclü vasitələrə malik olduğu və geniş məkan məlumat formatları ilə işləyə biləcəyi üçün həyəcan verici tapırlar. .

Qiymət: $26.99 & emsp | & emsp Nəşriyyat: Packt Nəşriyyatı & emsp | & emsp Buraxılış: 2015

JavaScript Yaradıcıları üçün ArcGIS Nümunə & emsp

tərəfindən Jayakrishnan Vijayaraghavan, Yogesh Dhanapal

Kitab ArcGIS veb Xəritəçəkmə ekosisteminin əsaslarını izah etməklə başlayır. Kitab, sorğu, göstərmə, qabaqcıl məlumatların vizuallaşdırılması və xəritə analitikasının yerinə yetirilməsi kimi müxtəlif mövzuları əhatə edən altı əsas tətbiqin hazırlanmasında sizə yol göstərir. Eyni zamanda təmiz dojo istifadə edərək modul kod yazmağa da xüsusi diqqət yetirir.

Qiymət: $29.92 & emsp | & emsp Nəşriyyat: Packt Nəşriyyatı & emsp | & emsp Buraxılış: 2016

Python Cookbook & emsp ilə ArcGIS 10.1 proqramlaşdırılması

ArcGIS, ArcGIS Desktop mühiti üçün coğrafi işləmə skriptləri, alətləri və qısayolları yaratmaq üçün Python proqramlaşdırma dilini necə istifadə edəcəyinizi göstərəcək. Python proqramını necə istifadə edəcəyinizi göstərərək.

Qiymət: $26.99 & emsp | & emsp Nəşriyyat: Packt Nəşriyyatı & emsp | & emsp Buraxılış: 2013

Kod kartları və emsp

tərəfindən Amnon H. Eden, J. Nicholson

Populyar proqram modelləşdirmə qeydləri, həyata keçirilmə dəqiqələrini görselleştirir, lakin ölçüsünü itirmir, dizayn abstraksiyalarını tuta bilmir və təsirli alət dəstəyi verir. Bu məhdudiyyətləri aşmaq üçün hazırlanmış Codecharts, hər hansı bir ölçüdə Java, C ++ və C# proqramları üçün yol xəritələrini və planlarını qəşəng şəkildə, dəqiq və hər hansı bir səviyyədə modelləşdirə bilər.

.NET və emsp istifadə edərək Masaüstü İnkişafı üçün ArcGIS -ə başlayın

ArcGIS for Desktop, xəritələrin yaradılması və istifadəsi, coğrafi məlumatların tərtib edilməsi, təhlili və paylaşılması, tətbiqlərdə xəritələrin və coğrafi məlumatların istifadəsi və coğrafi verilənlər bazalarının idarə edilməsi üçün güclü bir proqram vasitələridir. Ancaq ArcGIS -in Masaüstü üçün bağlanması təcrübəli proqramçılar üçün də bir az çətin ola bilər. Əsas komp.


Ad-hoc mentaliteti ilə mübarizə aparmaq çox çətindir. Saat 19 -dur. Verilənləri sabah bir müştəriyə verməzdən əvvəl etməli olduğunuz bir işiniz var. Həmkarınızın Python skriptinin əlavə edə bilmədiyi bir coğrafi verilənlər bazasına itkin bir domen əlavə edirsiniz. Daha sonra rəqəmlər əvəzinə mətni saxlamaq lazım olduğunu başa düşdüyünüz üçün bir sahə üçün məlumat növünü dəyişirsiniz. Və#8230, buraxılmadan əvvəl gördüyünüz üçün çox sevindiyiniz bir neçə başqa şey tapacaqsınız. Onları düzəldin, verilənlər bazasını zip edin və bir FTP saytına yükləyin. Saat 22 -dir, yoruldun, amma xoşbəxtsən və yatağa gedirsən.

Uğur! … Yoxsa bu? Növbəti şey, sabah səhər, dünən təqdim etdiyiniz dərslik dəyişikliklərini sənədləşdirmək istəyirsiniz, ancaq başqa bir təcili işə sürüklənirsiniz və bunu heç vaxt etmirsiniz. Bir həftə sonra, bir müştəri sizin üçün hazırladığınız verilənlər bazasından istifadə edərək ev alətlərini işlədə bilməyəcəyini, ancaq bir ay əvvəl hazırladığınızın işlədiyini bildirən bir e-poçt göndərir. İndi yenə saat 21 -dir və verilənlər bazasını müqayisə etməyə çalışaraq qəribə görünən bir skript yazırsınız və o axşam nə etdiyinizi xatırlayırsınız … Bir qarışıqlıq içindəsiniz.

Etdiyiniz işi görmək təbii görünə bilər, çünki sadəcə işlərinizi bitirmək istəyirsiniz. Ancaq buna başqa bir prizmadan baxmağınızı istəyirəm. Addımlarınızın təkrarlanmasını istəyirsiniz. Etdiyiniz dəyişiklikləri izləmək istəyərsiniz. Nəinki siz, həm də hər hansı bir həmkarınız hər hansı bir məlumat və ya skriptdə edilən yeniləmələri ala bilməlidir. Buna görə işlərinizi tamamlamaq, sürətləndirmək və işinizi aşağıdakı üsullardan biri ilə izləmək istəyinə qarşı durun.

Əl ilə sənədləşdirmə

Proqramlaşdırma və ya skript işində heç də rahat deyilsinizsə, məlumat bazasında dəyişiklik edərkən atdığınız hər addımı sənədləşdirməlisiniz. Ən azından yazılı şəkildə nə edildiyini görə bilərdiniz. I cannot stress that enough – you should document what you are doing, not what you have done. So write down what you have done after each change operation, not after you have done all the work. This is how it can look:

  1. You added field Area of Double type to the table dbo.Parcels .
  2. You write: “Add field Area of Double type to the table dbo.Parcels .”
  3. You dropped field OldArea of Double type in the table dbo.Parcels .
  4. You write: “Drop field OldArea of Double type in the table dbo.Parcels .”

One of the disadvantages of this approach is that it is possible to get the changes out of sync with the documentation. You could have made an error documenting a data type or a field name. Another thing is that the very same step can be done in many ways – what if you add field to a database using some GIS application and a colleague of yours uses a DBMS command line tool? Documenting exactly the procedure of making changes soon becomes tedious and you end up with tons of instructions that easily becomes misleading or plain obsolete. However, if you are vigorous, it is still possible to maintain a decent level of changes tracking with sufficiently rigid discipline.

Simply programming with VCS

Another approach is to write a program that will make the changes. When you write code, you don’t need to document what you are doing because the reader familiar with the syntax of this programming language will understand what happens. You can add some comments of course explaining why adding certain fields is required though. So, if you are building a database with a few tables, you can write a SQL script that can be re-run recreating your database at any point of time. If you never make any manual changes to a database and only write and keep SQL commands, your main SQL data compilation script will never get out of sync.

This leads us to a concept of version tracking where it is possible to track how your SQL script changed since the last version. Who is not guilty of having at some point of our career a dozen of files with some scripts named “ production_final_compilation_truly_final_12.sql “? To avoid this mess, you should really use a VCS.

The main argument against this approach is that it setting up all this version control tools look like an overkill for someone doing simple GIS work. However, you will see how much safer your work will be in the long run. It will pay off very soon. Invest some time in learning about VCS such as Git for managing the source code. All major players – BitBucket, GitLab, and GitHub – provide free private repositories. Find out whether there is a VCS solution deployed in-house within your organization, such as Microsoft TFS, which you could use to check in the code. Should you like to dive deeper into Git, read the Git Pro book for free online. If you are not comfortable putting anything into the cloud (which is just someone’s else computer), use Git locally on your machine or a local server where you can securely check in your code and ask your system administrator to take backups of those repositories.


13 Aug 2015: Rich Signell on Catalog-driven Workflows for Science

"Catalog-driven, reproducible workflows for ocean science: Comparing sea level forecasts along the US Coastline"

The USGS Integrated Ocean Observing System (US-IOOS) requires that data providers use standard web services (OPeNDAP+CF, OGC WMS, OGC SOS) for distributing model products and insitu observations. The services are captured in ISO metadata records and searchable via standard catalog services (OGC CSW).

This presentation will demonstrate how to use this system in a reproducible Jupyter Notebook, discovering, accessing and using model and observed water levels along the US Coastline, using a free python environment that can be installed on Mac, Windows and Linux in less than 10 minutes.