Python 2 desteğinin sonlanması ArcGIS’i nasıl etkileyecek

2008 yılında Python 2’nin desteğinin 2015 yılında sonlandırılacağı duyurusunun ardından, 2014 yılında Python Yazılım Vakfı tarafından Python 2 desteğinin sonlandırılma tarihinin 2020’ye uzatıldığı açıklanmıştı. 1 Ocak 2020 tarihi itibariyle Python 2 desteği sonlandırılacaktır. Sahip olduğunuz Esri ürünlerinin bu değişimden nasıl etkileneceklerini yazının devamında bulabilirsiniz. (daha&helliip;)

Esri Jupyter Notebook ile CSV Sözel Dosya Görüntüleme

Günümüzde verinin format ve şekli yüzlerce formda bulunabilir. XML ve JSON gibi standartlara sahip, belirli kurallara göre içeriğinin oluşturulması gereken dosya formatları yanında, CSV gibi satırlarda bulunan verinin ayraçlar yardımıyla birbirinden ayrıştırılarak, içeriğinin ofis uygulamaları ile bile görüntülenebilen basit bir formattır.

Coğrafi veri içeren bir CSV dosyasını ArcGIS Desktop ile açıp görüntülemek hatta analizler için kullanmak çok kolay. Peki Esri Jupyter Notebook ile bir CSV dosyasını içeriğini bir harita üzerinde göstermenin de çok kolay olduğunu biliyor musunuz?

Örnek bir veri seti içeren bir CSV dosyası oluşturalım. Sütunları sırayla X ve Y olsun. Diğer ek nitelik bilgileri istediğiniz gibi belirleyebilirsiniz. Bu örnekte ben sadece “KAPINO” adında bir bilgi ekledim.

Bu CSV dosyasını Esri Jupyter Notebook açılış ekranında sağ tarafta bulunan “Upload” (Yükle) düğmesine basarak çalışma ortamınıza yükleyin.

Yükleme işlemi bittikten sonra bir çalışma sayfası oluşturalım. İlk hücremize kullanacağımız kütüphanelerimizi tanımlayalım. “pandas” kütüphanesini kullanacağız. Bu kütüphane sayesinde bir CSV dosyasının içeriğini hızlıca okunabilir ve manipüle edebilir.

“pandas” içerisinde “read_csv” fonksiyonuna parametre olarak vereceğimiz CSV dosya yolu ve içerisinde ayrıştırıcı olarak kullandığımız karakterin tanımlamasını yazalım. Ben “;” karakterini kullandım.

Sonra kullanacağımız harita kontrolümüzü “GIS” sınıfından türetip oluşturalım. “map” fonksiyonu kullanarak yeni bir harita bileşenini oluşturalım.

Oluşturduğumuz “gis” nesnesinde “content” yardımcı sınıfındaki “import_data” fonksiyonuna “pandas” kütüphanesi tarafından okunan CSV dosya karşılığını parametre olarak verdiğimizde verimizi artık bir katman olarak kullanabileceğiz.

Bu katmanıda haritamıza “add_layer” fonksiyonu kullanarak katman olarak ekleyeceğiz. Ve haritamızı görüntülediğimizde CSV dosyasının içerdiği X ve Y konumlarını harita üzerinde görüntüleyebileceğiz.

 

Daha fazla bilgi için Esri Türkiye Profesyonel Hizmetler ile iletişime geçebilirsiniz.

Esri Türkiye 2019

Dinamik Detay Gruplama

Bazen haritanızdaki detayları hesaplanmış toplam değerlere göre sembolize etmeniz gerekebilir. Haritadaki büyük miktardaki noktayı bir araya getirerek göstermek görselliği daha anlamlı hale getirebilir, bunu yaparken kullanacağınız öznitelik değerlerinden hesaplanan bu değerlere örnek vermek gerekirse bunlar; en küçük değerler (min.), en büyük değerler (max.), ortalamalar (avg.) ya da toplamlar olabilir. Öznitelik bilgilerindeki herhangi bir sütunun değerlerini kullanabilirsiniz.

ArcGIS Pro’da nokta toplulaştırma ve görselleştirme için birçok yöntem vardır. Yazımızın konusu ise bu yeteneklere yeni olarak eklenen Dinamik Gruplama yeteneğidir. Ölçeğe ve haritadaki görüntülenen alana göre dinamik bir gruplama yeteneği, ArcGIS Pro 2.4 versiyonuyla birlikte kullanımınıza sunuldu.

Eğer çok fazla sayıda detaya sahip olan nokta detay sınıfınız varsa ve bunu dinamik olarak anlamlı gruplar halinde görselleştirmek istiyorsanız ve bir de bu veriyi İlişkisel Veri Tabanı Yönetim Sisteminde (İVTYS) barındırıyorsanız bu yeteneği kullanabilirsiniz.  Şu an için bu işlevi destekleyen veri tabanı platformları aşağıdaki gibidir:

  • IBM Db2
  • Microsoft SQL Server
  • Oracle
  • PostgreSQL
  • SAP HANA

Bunu yaparken çok büyük veri setleriyle çalışıyorsanız ya da çok sık güncellenmeyen verilerle çalışıyorsanız istediğiniz ölçekler için statik gruplama kullanarak, ardından da verilerinizi görselleştirmenin anlamlı olduğu aralıklarda dinamik gruplama gösterimi de sağlayabilirsiniz.

Coğrafi veri tabanınızda olan deprem noktaları detay sınıfına Python kullanarak da uygulayabileceğiniz dinamik gruplama Python kodu aşağıdadır:

*Bu kod örneği WGS 84 Coğrafi Koordinat Sisteminde olan Depremler detay sınıfı derinlik öznitelik sütunundan depremlerin maksimum derinliklerine göre kare şeklinde gruplama yapmayı aktif hale getirir.

Esri Türkiye, 2019

Esri CityEngine’de Python’u Kullanarak İş Akışlarınızı Otomatikleştirin

Esri CityEngine’de Python’u Kullanarak İş Akışlarınızı Otomatikleştirin

Python ve Esri CityEngine

Python, nesne yönelimli, yorumlamalı, birimsel ve etkileşimli yüksek seviyeli bir programlama dili olduğu için CityEngine’in olanaklarını büyük ölçüde arttırmaktadır. Bu blog yazısında Python konsolunun ve editörün temel kullanımı ve CityEngine görevlerinin otomatikleştirilmesi konusunda çeşitli örnekler verilecektir. CityEngine’de Python’u kullanma amacımız modelleme işlemlerinden ziyade, otomasyondur. Python komut dosyaları Python konsolunda veya Python düzenleyicisinden çalıştırılabilmektedir.

Python Console

Python konsolunu kullanarak CityEngine projemizin klasörlerinde veya herhangi bir klasörde bulunan komut dizinleri çalıştırılabilmektedir. Örneğin scripts klasöründe bulunan bir komut dizini direkt olarak konsolda, içeri aktarılarak çalıştırılabilmektedir.

Python Konsolu

Python Editor

Python Editor, komut dosyalarını düzenlemek ve yürütmek için daha uygun bir yol sunar .Python modüllerini Dosya → Yeni … → Python Modülü yolu ile oluşturabilir.  Yeni bir python modülü oluştururken kaynak klasör olarak mevcut projemizde bulunan scripts klasörünü seçebilir, hatta scripts klasörüne sağ tıklayarak yeni python modülü oluşturabilmekteyiz.

CityEngine yazılımında Python’u ne şekilde kullanabilmekteyiz ?

Python ile CityEngine de birçok şeyi otomatikleştirebilmekteyiz. Örneğin bir oyun projesinde çalışıyoruz ve tekrarlı olarak fbx formatında çıktılar elde etmek zorundayız.  Python ile oluşturacağımız yönergeler ile, sadece tek tıkla komut dosyası içerisinde belirttiğimiz tüm parametreler ile birlikte modelimizi dışarı aktarabiliriz. CityEngine model dışarı aktarım seçeneklerinde bulunan tüm doku, geometri ve diğer parametreleri komut dosyası içerisinde belirtebilmekteyiz.

FBX dışa aktarım komut dosyasının çalıştırılması.

Python  kullanarak CityEngine yazılımındaki iş akışlarımızı otomatik bir hale getirebiliriz. Yukarıdaki sahnede komut dosyasının çalıştırılmasının ardından sahnede bulunan modelin .fbx uzantılı çıktısı models klasörüne eklenmiştir.Komut satırı çalışırken yapılan tüm işlemler aynı zamanda ekranda görüntülebilmektedir.

Animasyon Oluşturma

Python komut dosyaları, üretim veya dışa aktarım işlemlerini otomatikleştirmek için kullanılabilir. Aşağıdaki örnekte ise cga kuralları ile oluşturulan bir bina özelinde yazılan bir komut dosyasının sonucu görüntülenmektedir. Cga kural dosyası, binanın pencere aralıklarını, boyutu ve kapı genişliği gibi özellikleri içermektedir. Bu değerleri elle ayarlamak yerine, değerleri değiştiren bir komut dosyası oluşturabiliriz. Sonuç görüntüsü aslında bir animasyon teknolojisinden ziyade bina içerisinde olan değerlerin otomatik olarak değiştirilmesidir.

CGA kuralı içerisinde bulunan parametrelerin, phyton komut dosyası ile otomatik bir şekilde yönetilmesi.

CityEngine kendi Jython kurulumunu kullanmaktadır. Başka kütüphaneleri CityEngine yazılımına entegre ederek etkileyici senaryolar oluşturabilirsiniz. Örneğin tweepy’i kütüphanesini kullanarak bir sahne oluşturabilirsiniz. Sahne kullanıcıların izin vermesi dahilinde gerçek zamanlı twitleri ve konumlarını içeren firehose’ları sunmaktadır. Bu şekilde twittlerin sıklığına göre binaların yukarı doğru büyüdüğü bir sahne oluşturabilirsiniz.

Esri Türkiye 2019

Bu yazı için bir etiket bulunmamaktadır.

Workforce for ArcGIS Yenilikleri

Workforce for ArcGIS

Workforce for ArcGIS, kullanıcıların saha çalışmasını planlamasına ve koordine etmesine yardımcı olan bir Esri uygulamasıdır.Uygulama kurumsal konum bilinci kazanırken saha operasyonlarını optimize etmektedir. Esri saha uygulamaları paketi ile kolayca entegre olan Workforce, saha çalışanlarına görevler atama ve çalışanların performansını, konum geçmişini ve en son bilinen çalışan yerini saptamak için zaman bilgileri dahil olmak üzere çeşitli verileri toplama yeteneği sağlar. Workforce’un web ve mobil uygulamalar için düzenli güncellemeleri bulunmaktadır. Web uygulaması, proje sahipleri ve kullanıcıları tarafından kullanılır. ArcGIS Online veya ArcGIS Enterprise üzerinden erişilebilir. Mobil uygulama ise saha çalışanları tarafından kullanılmaktadır. Hem Android hem de iOS mağazasında mevcuttur.

Workforce for ArcGIS Yenilikleri

Yenilikler arasında ilk özellik Explorer for ArcGIS  ile uygulama entegrasyonudur. GlobalID ile Survey123 ve Collector for ArcGIS’e geçme ve veri toplama çalışmalarını saha çalışması atamalarına bağlama seçeneği sunulmaktadır. Bu sistem ile Survey123 ile sahada anket çalışması yapan kişinin hareketlerini ve çalışmalarını Workforce ile artık ilişkilendirilebilir.

Workforce Scriptleri

Workforce web uygulaması,saha çalışanına hızlı ve verimli bir şekilde yeni iş atamaları yapılmasını ve mevcut atamaların yönetilmesini sağlamak için tasarlanmıştır. Ancak, web uygulamasının kapsamı dışında kalan ihtiyaçlar olabilir.Örneğin workforce için alınan en yaygın taleplerden bazıları şunlardır.
  • Üçüncü taraf iş emri,
  • İş süreçlerinin varlık veya bakım yönetimi sistemleri gibi diğer sistemlerle entegrasyonu
  • Yinelenen görevlerin yerine getirilmesi
Workforce ile komut dosyası çalıştırarak bu özellikler artık uygulanabilir hale gelmiştir. Ayrıca saha çalışanlarına yeni işler atamak için web uygulamasını kullanma sınırlaması yoktur. Workforce, iş atamalarının nasıl oluşturulduğuna bakılmaksızın atamalar(Assignments ) özellik katmanının içeriği ile çalışır. İş, bir varlık veya bakım yönetim sistemi gibi bir kuruluştaki diğer sistemlerden atanabilir. Workforce iş atamalarını oluşturmak ve güncellemek için dış kaynaklar ile entegre edilebilir.

Workforce’u otomatikleştirmek ve komut dosyası yazmak için  ArcGIS API for Python ve Workforce Modüllerini kullanabilirsiniz.   Python’un harici kaynaklarından otomatik olarak iş atamaları gerçekleştirme, işçileri dahil etme ve yönetme, tamamlanan atamaları kaldırma ve daha fazlası gibi birçok görevi gerçekleştirmek için komut dosyaları oluşturulabilir. Bazı tipik operasyonları görmek için bu Jupyter Notebook‘u da kullanabilirsiniz.

Workforce Offline

Bir sonraki sürüm, çevrimdışı bir ortamda çalışma yapma ve çevrimiçi duruma döndükten sonra verilerinizi senkronize etme yeteneği ile çevrimdışı desteğe odaklanmıştır. Ek olarak, yeni Workforce mobil uygulaması kullanıcı arayüzü için yeni bir görünüm sergileyecek ve en son çalışma zamanına güncellenecektir. Bu güncellemeler için şu anki yol haritası bizi 2019’un ikinci yarısına götürüyor ve yeni çevrimdışı Workforce programı ArcGIS Enterprise 10.7 den sonrasını gerektirecek ve mevcut Workforce mobil uygulaması “Workforce Classic” olarak adlandırılacak. Böylece mevcut iş akışlarınıza da devam edebileceksiniz.

Tracker for ArcGIS ile Entegrasyon

Workforce’da konum takibi, Tracker for ArcGIS yetenekleri ile değiştirilecektir. Tracker for ArcGIS, sahada gerçek zamanlı olarak neler olup bittiğini tam olarak anlamamızı sağlayan durumsal farkındalıkda önde gelen yeni bir teknolojidir. Konumunuzu paylaşarak, tüm ekibinizin nerede olduğunu öğrenebilirsiniz.

Bu mobil uygulama sadece arka planda çalışarak iş kanıtı, durumsal farkındalık ve gerçek zamana yakın değerlendirmeler yapmanızı sağlar.

Artık Workforce for ArcGIS’in tüm yeni özelliklerinden yararlanmaya başlamaya hazırsınız.

Daha fazla bilgi için Esri Türkiye Profesyonel Hizmetler ile iletişime geçebilirsiniz.

Esri Türkiye 2019

Bu yazı için bir etiket bulunmamaktadır.
Esri Jupyter Notebook’ta OpenStreetMap Bina Verisi Kullanılarak Basit Analizler Yapımı

Esri Jupyter Notebook’ta OpenStreetMap Bina Verisi Kullanılarak Basit Analizler Yapımı

ArcGIS Pro yüklü makinede yüklenebilen ücretsiz Jupyter Notebook sayesinde ‘ArcGIS API for Python’ kullanılarak coğrafi uygulamalar geliştirip analizler gerçekleştirebilirsiniz. Bununla birlikte ArcGIS Online yönetimini de yapılabilmektedir.

ArcGIS Pro yazılımına sahip ama henüz Jupyter Notebook’u bilgisayarınıza yüklemediyseniz link içinde geçen yönergeleri takip edip bilgisayarınıza yükleyebilirsiniz. Hemen şimdi kullanmak istiyorsanız da Esri’nin ücretsiz hizmete sunduğu notebooks.esri.com adresinde Jupyter Notebook’u kullanabilirsiniz. Dikkat etmeniz gereken husus bu adreste yapacağınız çalışmaları ve verilerinizi kendi yerel bilgisayarınıza kopyalamanız. Çünkü açacağınız oturum, süre kısıtlı; eğer hiçbir işlem yapmazsanız belirli bir süre içinde oturumunuz otomatik olarak kapatılır ve yaptığınız çalışmaları kaybedebilirsiniz.

Bu yazıda Jupyter Notebook platformu üzerinde 3 boyutlu bir harita üzerinde OpenStreetMap (OSM) bina verilerini görselleştirip, metro duraklarına kendi oluşturacağımız yakınlık analizi algoritmasına göre görselleştirmesi anlatılmaktadır.

İşleyiş adımları aşağıdaki gibi olacaktır:

Şekil 1. İşleyiş adımları

Gereksinimler:

  1. ArcGIS Developer hesabı (ücretsiz oluşturmak için https://developers.arcgis.com/ adresini ziyaret edin)
  2. Jupyter Notebook

1.      OSM Bina Verilerinin Alınması

OSM ücretsiz servisler sunması nedeniyle içerdiği büyük boyutlarda coğrafi verilerin son kullanıcılar tarafında erişimi farklı ücretli ve ücretsiz olarak erişilebilmektedir. Bu yazıda overpass-turbo.eu sitesi üzerinden ücretsiz olarak bina verilerini indireceğiz. Yasal kullanım hakları için https://www.openstreetmap.org/copyright sitesine mutlaka bakın.

İlgili sitede, arama kutusuna istediğiniz bölgeyi yazın ve alacağınız bina verilerini öncelikle olabildiğince dar alan için alın. Yazı bitiminde istediğiniz büyüklükte bir alan üzerinden çalışabilirsiniz.

Şekil 2. Ankara şehir merkezi binalar

Sol üstteki ‘Wizard’ (Sihirbaz) düğmesine basıp, çıkan ekranda haritada görüntülenen alan için alabileceğimiz OSM verisi için sorgu oluşturacağız. Buradaki sorgu için kullanacağınız kelimelerin detaylarını linkte bulabilirsiniz.

Şekil 3. Sorgu sihirbazı

Sorgu sihirbazına yazacağınız ‘building=* OR building:levels=*’ yazarak, haritada görüntülediğiniz alandaki tüm binaları ve varsa seviye (kat) bilgisini da almış oluyorsunuz. Burada seviye bilgisi her bina için farklılık gösterecektir. ‘build and run query’ (derle ve çalıştır sorguyu) düğmesine basarak, ilgili alan için veriler çekilir.

Web sayfasının sol üst kısmındaki ‘Data’ (Veri) sekmesine tıklayarak, çekilen verileri görüntüleyebilirsiniz. Eğer verilerinizde sıkıntı yoksa, web sayfasının sol kısmındaki ‘Export’ (Dışarı Çıkart) düğmesine tıklayarak verileri indirme için gerekli paneli açacağız.

Şekil 4. ‘Dışarı Çıkarma’ paneli

‘Export’ panelindeki ‘Data’ kısmını genişlettiğinizde ‘download/copy as GeoJSON’ (indir/kopyala GeoJSON olarak) linkine tıklayın. Bu şekilde ArcGIS Developer hesabı ile giriş yapabileceğiniz ArcGIS Online içerisine kolay bir şekilde format değişimi yapmadan atabileceğiz.

2.      Verinin ArcGIS Online İçerisine Atılması

ArcGIS Online giriş yapın ve ‘Content’ (İçerik) linkine tıklayın. Sol kısımdaki ‘Add Item’ (Öğe Ekle) düğmesine tıklayıp dosya içeri aktarma sürecini başlatalım. ‘From my computer’ (Bilgisayarımdan) seçeneğini seçelim.

Şekil 5. ArcGIS Online ‘Bilgisayarımdan bir öğe ekle’ paneli

Bir önceki bölümden indirdiğimiz dosyayı burada seçip, ilgili alanları dolduruyoruz. Başlık kısmına girdiğimiz değeri sonraki bölümlerde kullanacağız. Kısa bir süre sonra öğemiz ‘Feature Layer’ (Feature Katmanı) olarak eklenmiş olacak.

Yeni eklenen öğeyi tıklayıp sayfasını açın. Analizler için kullanacağımız yeni bir ‘Field’ (Alan) oluşturmak için ‘Data’ (Veri) sekmesine tıklayıp verilerin görüntülendiği sayfa açılsın.

Şekil 6. ‘Alan Ekle’ menüsü

Sol kısımdaki üç tırtıklı ikona tıklandığı zaman açılan menüde ‘Add Field’ (Alan Ekle) menü seçeneğini tıklanır ve aşağıdaki resimdeki veriler girilir.

Şekil 7. ‘Alan Ekle’ paneli

3.      Jupyter Notebook içerisinde Programlama

Öncelikle analiz için kullanacağımız metro bilgisini almak. Bunun için ‘Jupyter Notebook’ uygulamasını çalıştırın ve yeni bir çalışma kitabı oluşturun ve aşağıdaki kodları yazıp çalıştırın.

Şekil 8. Metro bilgisinin alınıp ArcGIS Online’a kaydetme

Yukarıdaki kodlarda kırmızı ile kapatılmış alanları kendi bilgilerinize göre doldurmanız gerekmektedir. Bu kod parçası Ankara merkezde metro istasyonları POI bilgisini ‘feature’ olarak en fazla 20 tane olacak şekilde almaktadır. Sonrasında da harita üzerinde gösterimini sağlayıp, bilgiyi ArcGIS Online üzerine ‘metrolar’ olarak kaydetmektedir.

İsterseniz kaydedilen ‘metrolar’ katmanının görsel ikonunu değiştirebilirsiniz.

Metro bilgisini alma işlemini bitirdikten sonra, ana uygulamamızı oluşturabiliriz. Bunun için yeni bir çalışma kitabı oluşturalım Jupyter Notebook üzerinde.

Kod hücrelerinde:

  1. Gerekli kütüphane kullanımları yapılıyor ve ArcGIS Online hesabına bağlantı sağlanıyor.
  2. Merkezi Ankara olacak şekilde bir harita objesi oluşturuluyor.
  3. ArcGIS Online hesabına bağlı olan içerikte bina bilgilerini içeren ‘export’ katmanı bulunuyor.
  4. ‘metrolar’ katmanı bulunuyor.
  5. Yapılacak analiz sonucunda 3 boyutlu binaların görselliğini değiştirmek için özel bir semboloji tanımlanıyor. ‘ClassBreak’ tipindeki bu sembolojide alan ‘distance’ içindeki 0, 15, 25, 50, 75 ve 100 metrelik değerlere göre bina renklendirilmesi farklı olmaktadır.
    Metro katmanı haritaya katman olarak eklenir. Haritayı 3 boyutlu hale getirmeyi unutmayınız.
  6. Basit bir analiz yapılıyor. Metro konumlarına göre oluşturacağımız ‘buffer’ işlemini 100,75,50,25 ve 15 metrelik tekrarlar ile yapıp, her oluşturulan ‘buffer’ poligonun bina poligonu ile arasındaki uzaklık farkının sıfır olması durumunda, bina bilgisindeki ‘distance’ alanına ilgili ‘buffer’ uzaklığının değeri yazılmaktadır. Bu şekilde tüm binaların metro duraklarına olan uzaklığı hesaplanmaktadır.

Şekil 9. Basit bina-metro durağı analizi

Kodun çalıştırılması sonrasında haritamızda analiz sonucunu görüntüleyeceğiz.

Şekil 10. Ankara merkez bina-metro yakınlık analizi

Metro bilgisi yerine isteyeceğiniz farklı POI bilgilerin ve bina bilgilerine göre farklı analizler yapabilirsiniz artık.