Pyhton ile Hayatınızı Kolaylaştırın (Bölüm 3) – Sonuçların “xlsx” formatında yazılması

Pyhton ile Hayatınızı Kolaylaştırın (Bölüm 3) – Sonuçların “xlsx” formatında yazılması

Pyhton ile Hayatınızı Kolaylaştırın (Bölüm 2) blog yazımızda çeşitli fonksiyonlar ile domain, domain değerleri ve subtype bilgilerine erişim sağlamıştık. Çoğu zaman özellikle raporlama amacı ile bu bilgilerin görüntülenmesi değil okunabilir bir formata yazmamız önemlidir.

Bu blog yazısında Excel (xlsx) formatında nasıl çıktı oluşturabileceğimize değineceğiz.

Pyhton ile Hayatınızı Kolaylaştırın (Bölüm 1) blog yazımızda bu işlem için ihtiyacımız olan “openpyxl” kütüphanesini Python kütüphanemize eklemiştik.

İlk olarak bu kütüphaneyi kullanabilmek için kodumuzun başına aşağıdaki satırları yazmalıyız.

 

import openpyxl
from openpyxl import Workbook

 

Excel formatındaki dosyanın kayıt edilebilmesi için kullanıcıya dosya yolunu bir parametre olarak belirlemesini istiyoruz. Dosya yolunu kullanıcı seçimine bırakmadan hard-coded olarak da tanımlayabilirsiniz.

dosya = arcpy.GetParameterAsText(1)

...

arcpy.env.workspace = gdb
wb = Workbook()
ws = wb.active
ws['A1'] = 'Katman'
ws['B1'] = 'Sayi'
count = 2
for ds in arcpy.ListDatasets():
    for fc in sorted(arcpy.ListFeatureClasses('','',ds)):
        fc_path = os.path.join(gdb, fc)
        fc_count = str(arcpy.GetCount_management(fc_path))
        ws['A{0}'.format(count)] = fc
        ws['B{0}'.format(count)] = fc_count
        count += 1
output = dosya + "\\" + 'katmansayilari.xlsx'
wb.save(output)

 

Yukarıdaki kod bloğu, “katmansayilari.xlsx” Excel dokümanını açarak “A1” hücresine FeatureClass ismini (Katman), “B1” hücresine ise ilgili FeatureClass da bulunan nesne sayılarını (Sayi) yazdıracaktır.

Bu örnekleri kendi iş süreçlerinize rahatlıkla uyarlayabilir veya detaylı bilgi almak için eğitimlerimize katılım sağlayabilirsiniz.

 

Esri Türkiye, 2019

Pyhton ile Hayatınızı Kolaylaştırın (Bölüm 2) – Subtype ve Domain Sayısını Bulmak

Pyhton ile Hayatınızı Kolaylaştırın (Bölüm 2) – Subtype ve Domain Sayısını Bulmak

Günlük işlerimizde oldukça fazla kullandığımız “file geodatabase” yani “gdb” uzantılı dosyalarımızda bulunan subtype ve domain sayılarını Python kodu ile hızlı bir şekilde bulabiliriz.

Üzerinde işlem yapılacak “gdb” dosyasını kullanıcının seçmesini sağlayabilir veya doğrudan dosya yolunu tanımlayabilirsiniz. Aşağıdaki örnekte kullanıcı tarafından seçilebilecek bir parametre olarak tanımlanmıştır.

gdb = arcpy.GetParameterAsText(0)

Domain listesini oluşturmak

İlk olarak belirtilen “gdb” dosyasındaki domain listesini alalım.

desc = arcpy.Describe(gdb)
domains = desc.domains

Bu noktadan sonra;

for domain in domains:

döngüsü ile domain bilgilerini yazdırabilir veya görüntüleyebilirsiniz.

Not: Eğer yazdığınız kodu ArcToolbox içinde kullanacaksanız;

print (msg)

komutu işe yaramayacaktır. Bu komut ancak ArcMap’in Python penceresinde kullanılabilir.

Subtype sayısını öğrenmek

arcpy.env.workspace = gdb
Tsubtype = 0
for dataset in arcpy.ListDatasets():
    for fcls in arcpy.ListFeatureClasses('','',dataset):
        fcls_path = os.path.join(gdb, fcls)
        subtypes = arcpy.da.ListSubtypes(fcls_path)
        for subtype in subtypes:
            Tsubtype = Tsubtype + 1

döngüsü ile subtype sayısını yazdırabilir veya görüntüleyebilirsiniz.

Not: Eğer yazdığınız kodu ArcToolbox içinde kullanacaksanız;

print (msg)

komutu işe yaramayacaktır. Bu komut ancak ArcMap’in Python penceresinde görüntülenebilir.

Domain ve değerlerini öğrenmek

Tdomain = 0
Tvalue = 0
domains2 = arcpy.da.ListDomains(gdb)
for domain in domains2:
    Tdomain = Tdomain + 1
    coded_values = domain.codedValues
    for val, desc in coded_values.items():
        Tvalue = Tvalue + 1

Yukarıdaki içi içe bulunan döngüden “Tdomain” değeri ile Domain sayısını, “Tvalue” değeri ile Domain değerlerinin sayısını öğrenebilirsiniz.

Esri Türkiye, 2019

Pyhton ile Hayatınızı Kolaylaştırın (Bölüm 1) – ArcMap Python Kütüphanesi Genişletme

Pyhton ile Hayatınızı Kolaylaştırın (Bölüm 1) – ArcMap Python Kütüphanesi Genişletme

Bildiğiniz gibi Pyhton, kolaylıkla öğrenilebilir, ücretsiz ve açık kaynaklı bir programlama dilidir. Eğer daha önce hiç kullanmadıysanız ve meraklıysanız, bu link üzerinden göz atmanızı tavsiye ederiz.

Bu blog yazısı serisinde temel bilginiz olduğunu varsayarak size ArcMap (Pyhton 2.7 kullanır) üzerinde bazı ipuçları vererek günlük işlerinizde kullanabileceğiniz kod örnekleri paylaşacağız. ArcMap ve ArcGIS Pro üzerinde çalışan Python farklılıklarına ilişkin önceden yayınladığımız blog yazısını inceleyebilirsiniz.

ArcMap uygulamasını varsayılan ayarları ile yüklediğiniz zaman Python, aşağıdaki klasör yollarında bulunan kütüphaneleri kullanır.

c:\Program Files (x86)\ArcGIS\Desktop10.x\arcpy\
c:\Python27\ArcGIS10.x\DLLs\
c:\Python27\ArcGIS10.x\Lib\lib-tk
c:\Python27\ArcGIS10.x\Lib\site-packages

Her ne kadar çok geniş bir kütüphane olsa da bazen yeni kütüphaneler eklememiz gerekebilir. Bu ilk bölümde, daha sonradan da kullanacağımız “openpyxl” kütüphanesini yükleyerek “xlsx” dosyalarını okuma ve yazma kabiliyetini edineceğiz.

Bunun için ilk olarak, ilgili kütüphaneyi (ArcMap için kullanılabilecek sürüm 2.7 ‘yi aşmamalıdır) link üzerinden indirmeniz gerekmektedir. İndirmeden önce “Requires: Python >=2.7” olduğunu kontrol etmeniz önemlidir.

Setup.py dosyasının içinde bulunduğu root klasörü arşiv dosyasından dışarı çıkartıyoruz.

“Run–>cmd” ile komut penceresini açıyoruz ve arşiv dosyasından dışarı çıkarttığımız klasörü aktif ediyoruz. Aşağıdaki örnekte bulunan klasör yapısı, indirdiğiniz dizin ve dosya sürümüne bağlı olarak değişkenlik gösterebilir.

Bu pencerede aşağıdaki komutları sırası yazıp çalıştırarak Python kütüphanesine yüklemeyi tamamlıyoruz. Mevcut ArcGIS versiyonunuza göre aşağıdaki klasör isimlerinizi düzenlemeniz gerekmektedir.

c:\Python27\ArcGIS10.x\python.exe setup.py install
c:\Python27\ArcGIS10.x\Scripts\pip.exe install openpyxl

 

İşlemler başarı ile tamamlandıktan sonra yüklemiş olduğunuz kütüphaneyi Python içerisinde kullanabilirsiniz. Yüklediğimiz bu kütüphanenin kullanımı ile ilgili olarak serinin diğer yazılarını takip etmeyi unutmayın.

Esri Türkiye, 2019

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

AppStudio for ArcGIS

“AppStudio for ArcGIS”, harita ve CBS (Coğrafi Bilgi Sistemi) verilerinizi native uygulamalara dönüştürerek kurumunuzdaki diğer kişilerle veya popular uygulama mağazaları sayesinde herkesle paylaşmanızı sağlar. AppStudio ile oluşturulan uygulamalar cross-platform (birden fazla işletim sisteminde desteklenen) özelliği sayesinde Android, iOS, Linux, macOS ve Windows işletim sistemlerinde çalışabilmektedir. AppStudio üyenin kullanıcı tipine dahil edildiğinde, uygulama oluşturmak için minimum kod yazımını sağlar. Üyeler, konfigüre edilebilir uygulama şablonlarıyla, özel kod yazarak şablonların özelliklerini geliştirerek veya sıfırdan uygulamalar oluşturabilirler. Yapacağınız konfigürasyon veya değişiklik miktarında göre çok az kod bilgisi ve efor ile AppStudio kullanarak tarayıcıda ya da masaüstünde çalışan uygulamalar geliştirebilirsiniz.

AppStudio for ArcGIS Desktop Edition Kurulumu

Masaüstünüzde AppStudio kullanmak için, işletim sisteminiz ve mimarisine göre kurulum dosyasını indiriniz ve yüklemek için çalıştırınız. Daha detaylı bilgi için linkere (1 ve 2) tıklayınız.

Kurulum tamamlandıktan sonra, masaüstünüzde iki adet kısayol oluşturulacaktır:

  • AppStudio for ArcGIS Desktop Edition; uygulamaları konfigüre etmek ve yönetmek için
  • Qt Creator (AppStudio for ArcGIS); uygulamalarınızı güncellemek için

AppStudio’nun tüm özelliklerinden faydalanmak için AppStudio kullanmanıza olanak sağlayan lisansa sahip ArcGIS Online hesabınız ile oturum açmanız gerekmektedir. Lisans hakkında daha detaylı bilgi için linke tıklayınız.

Temel (Basic) ve Standart (Standard) olarak iki farklı versiyonu bulunmaktadır:

  • AppStudio for ArcGIS Basic
    • Ücretsiz olarak her ArcGIS “named user” hesabına dahildir.
    • AppStudio web sitesinden ön tanımlı uygulama şablonları kullanılarak herkesin kullanımına açık harita uygulamaları oluşturmanız sağlanır.
  • AppStudio for ArcGIS Standard
    • ArcGIS Developer Subscription (Derleyici ve üstü) satın alınarak kullanılabilir
    • Tüm temel sürümün özellikleri yanında aşağıdaki yetenekleri de içerir:
      • Size ve kurumunuza özgü uygulamalar oluşturabilir.
      • Kurumunuza uygulamaları paylaşabilirsiniz.

Yeni bir uygulama Oluşturma

İlk kez kullanmanız durumunda mevcut bir uygulamanız olmayacaktır. Yeni bir uygulama oluşturmak için ekrandaki “New App” (Yeni Uygulama) düğmesine basınız.

Ekrana gelecek diyalog üzerinden uygulamanızın çeşidini ve başlığını belirleyebilirsiniz.

Uygulama Ayarlarını Değiştirme

Uygulamanızı oluşturduktan sonra ana panelde görüntülenecektir. İlgili uygulamayı seçip, sağ kısımdaki paneldeki yönetim bölümünden uygulamanızın özelliklerini, tekrar derlenmesini, çalıştırılmasını, silinmesi gibi işlevlerini gerçekleştirebilirsiniz.

Uygulamanın ArcGIS’e Yüklenmesi

Oluşturmuş olduğunuz uygulamanızı başkalarıyla paylaşmak için veya kurulum dosyalarını derlemek için ArcGIS üzerine yüklenmesi gerekmektedir. Yüklemek (Upload) için “Upload” düğmesine basınız. Yükleme yapabilmek için AppStudio for ArcGIS Standart lisansına sahip olunmalı.

Oynatıcıda Uygulamanın Test Edilmesi

Oluşturduğunuz uygulamaların hem masaüstü versiyonunu hem de mobil cihazlardaki versiyonunu test etmek için Oynatıcı (Player) uygulaması ile gerçekleştirilmektedir. Oynatıcı uygulaması Google Play ve App Store mağazalarından ücretsiz olarak edinebilirsiniz.

Oynatıcının masaüstü versiyonunu linkten temin edebilirsiniz. AppStudio ile oluşturduğunuz herhangi bir platformda çalışacak uygulamanız Oynatıcı sayesinde görüntüleyebilirsiniz.

AppStudio kullanarak yapacağımız uygulamalar hakkında blog yazılarımız için Esri Türkiye Blog web sayfamızı takip edebilirsiniz.