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.

ArcGIS Runtime SDK for Java için TLS 1.2 nasıl aktifleştirilir?

Not:

ArcGIS Runtime SDK for Java versiyonlarının her birinin destek durumu için Esri Destek sitesindeki Product Life Cycle sayfasına bakın.

Tüm desteklenen platformlarda, ArcGIS Runtime SDK versiyonları 100.4 ve 10.2.x’de Java 8 Update 181 ve sonrası kullanılmışsa, TLS 1.2’yi uygulama değişimi olmadan desteklenmektedir.

Ancak, ArcGIs 10.2.x uygulamaları TLS kullanıldığında Java 7 ortamında javax.net.ssl.SSLException hatalarını döner.

Esri ArcGIS 10.2.x uygulamalarının Java 8 Update 181 ve sonrasında çalıştırılmasını önermektedir.

Not:

TLS 1.2’nin diğer Esri ürünleriyle nasıl kullanılacağı hakkında bilgi için Esri Destek TLS Sayfası’na bakınız.

İlgili Bağlantılar:

ArcGIS Runtime SDK for .NET için TLS 1.2 nasıl aktifleştirilir?

Esri, ArcGIS Platformu ve son güvenlik protokollerini kullanarak müşterilerine yardımda güçlü güvenlik oluşturmak ve desteklemek için kararlıdır. Veri bütünlüğü ve ağ güvenliği için TLS dahil olmak üzere en yüksek endüstri standartlarını uygulamak için çalışmaktadır.

Bu standartları karşılamak için Esri, ArcGIS platformunda TLS 1.2’yi desteklemek için yazılım güncellemeleri yapıyor. ArcGIS Online güvenliğini geliştirmenin bir parçası olarak, Esri ArcGIS Online servisleri için TLS 1.2 bağlantılarını gerektirmektedir. Bu hizmetlere erişimin sağlanması için yapılması gerekenler bulunmaktadır.

Not:

ArcGIS Runtime SDK for .NET versiyonlarının her birinin destek durumu için Esri Destek sitesindeki Product Life Cycle sayfasına bakın.

ArcGIS Runtime SDK for .NET v100.0 – 100.4

TLS 1.2 uyumlu. Uygulama projesi konfigürasyonu ve/veya kod değişikliği belki gereklidir, aşağıdaki platforma özgü notlara bakınız.

ArcGIS Runtime SDK for .NET v100.2.1 ve önceki sürümler

Uygulamanın .NET framework 4.6 veya sonraki bir sürümü hedeflediğinden emin olun (4.7.2 sürümü şu anda önerilir).

Android

Android HttpClient uygulaması kullanılırken Android API 19 versiyonunda TLS 1.2 mevcut değildir.

Android uygulama projesi seçenekleri seçilirken tavsiye edilen seçenekler:

  • HttpClient uygulama seçeneği: Android
  • SSL/TLS uygulama seçeneği: Native TLS 1.2+
  • Minimum Android versiyon seçeneği: Android 5.0 (API level 21 – Lollipop).

Xamarin.Android HttpClient konfigürasyonu Project Options > Android Options, Advanced Options altındaki düğme.

Daha detaylı bilgi için bakınız: HttpClient Stack and SSL/TLS Implementation Selector for Android

ArcGIS Runtime SDK for .NET 10.2.7

Uygulama proje konfigürasyonu ve/veya kod değişikliği belki gerekmektedir veya TLS 1.2 platform API’si tarafından desteklenmiyordur, aşağıdaki platforma özel notlara bakınız.

Not:

TLS 1.2’nin diğer Esri ürünleriyle nasıl kullanılacağı hakkında bilgi için Esri Destek TLS Sayfası’na bakınız.

İlgili Bağlantılar:

ArcGIS Runtime SDK for QT için TLS 1.2 nasıl aktifleştirilir?

Esri, ArcGIS Platformu ve son güvenlik protokollerini kullanarak müşterilerine yardımda güçlü güvenlik oluşturmak ve desteklemek için kararlıdır. Veri bütünlüğü ve ağ güvenliği için TLS dahil olmak üzere en yüksek endüstri standartlarını uygulamak için çalışmaktadır.

Bu standartları karşılamak için Esri, ArcGIS platformunda TLS 1.2’yi desteklemek için yazılım güncellemeleri yapıyor. ArcGIS Online güvenliğini geliştirmenin bir parçası olarak, Esri ArcGIS Online servisleri için TLS 1.2 bağlantılarını gerektirmektedir. Bu hizmetlere erişimin sağlanması için yapılması gerekenler bulunmaktadır.

Not:

ArcGIS Runtime SDK for .NET versiyonlarının her birinin destek durumu için Esri Destek sitesindeki Product Life Cycle sayfasına bakın.

10.2.6 ve 100.x versiyonları için ArcGIS Runtime SDK for QT, Qt Framework’ün (Sistem Gereksinimlerinde listelenen) minimum desteklenen versiyonları veya daha büyüğü, ve minimum OpenSSL 1.0.1 veya daha sonrası, Windows, Linux ve Android platformlarda kullanan TLS 1.2’yi desteklemektedir. Qt 5.5’ten buyana, iOS ve macOS, Apple’ın SecureTransport çatısı ile varsayılan olark TLS 1.2’yi destekler.

Tavsiye edilen gereksinimler:

  • Qt Framework’ın en son versiyonu (veya en az ArcGIS Runtime SDK for Qt tarafından minimum desteklenen versiyon)
  • Windows, Android ve Linux için OpenSSL 1.0.1 veya daha sonrası
Not:

TLS 1.2’nin diğer Esri ürünleriyle nasıl kullanılacağı hakkında bilgi için Esri Destek TLS Sayfası’na bakınız.

İlgili Bağlantılar:

Zorunlu TLS 1.2 bağlantılarında ArcObjects SDK’nın Microsoft .NET Framework ve ArcGIS Engine .NET istemci uygulamalarında etkileri nelerdir?

Esri, 16 Nisan 2019’dan başlayarak ArcGIS Online servislerinde TLS 1.2 bağlantı kurmayı zorunlu kılmayı planlamaktadır. ArcGIS Online servislerinde sadece TLS 1.2 bağlantılar aktifleştirildiği zaman, yeni ‘ArcObjects SDK for Microsoft .NET Framework’ uygulamalar (ArcGIS Engine for .NET’de dahil) oluşturulurken ya da var olanlar çalıştırılırken dikkat edilmesi gereken hususlar vardır. 10.7 versiyonunda, masaüstü yazılımı zaten TLS 1.2 kullanıma göre ayarlanmıştır ve TLS 1.2 aktifleştirmek için gereken bir adım gerekmemektedir.

ArcGIS’e gelen bağlantıları kullanan eski ArcObjects .NET (Engine uygulamaları dahil) ile oluşturulan istemci uygulamalarınız yalnızca TLS 1.2’ye geçiş yapıldıktan sonra etkinleştirilmiş TLS 1.2’ye sahip değilse, entegrasyonlarınız bozulma yaşayabilir.

4.6’dan önceki .NET sürümleriyle oluşturulan ArcObjects .NET ve Engine uygulamalarında aşağıdaki değişiklikler yapılabilir:

  1. Uygulamanızı .NET Framework 4.6 veya daha üst versiyon ile tekrardan derleyin, 4.6 varsayılan olarak TLS 1.2 ile uyumludur (kod değişimine gerek yoktur).
  2. İşletim sistemi ortamı TLS 1.2 olarak ayarlanmış olsa bile, .NET Framework 4.5.x ile oluşturulmuş uygulamalar TLS 1.2 protokolünü desteklemektedir ama varsayılan olarak değil. Fiziksel kod değişimi ‘ArcGIS Platform SSL/TLS Support and Configuration Briefing’ dokümanı sayfa 9’da anlatıldığı şekilde gereklidir. Aşağıdaki nottaki örnekte bu değerin uygulamada nasıl belirleneceğine bakın.
  3. .NET Framework 4.0 ile derlenen uygulamalar varsayılan olarak TLS 1.2 aktif değildir. Varsayılan olarak aktifleştirmek için, .NET Framework 4.5 veya daha üstü versiyon yüklenebilir ve aşağıda belirtilen ‘Registry’ (Kayıt Defteri) içindeki iki kayıt anahtarında ‘SchUseStrongCrypto’ DWORD değeri 1 olarak belirlenmeli, yoksa da oluşturulmalıdır:
    • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v4.0.30319
    • HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework \v4.0.30319

Ancak bu kayıt anahtarları sistemdeki tüm yüklü .NET 4.0, 4.5, 4.5.1 ve 4.5.2 uygulamalarını varsayılan olarak TLS 1.2’yi etkinleştirebilir. Üretim sunucunuzda yüklemeden önce bu değişikliği test etmeniz önerilir. Bu kayıt anahtarları, System.Net.ServicePointManager.SecurityProtocol değerini ayarlayan .NET uygulamasını etkilemez.

Not:

.NET uygulamaları direkt olarak uygulama içinden TLS 1.2 aktif olarak belirlenebilir, ‘System.Net.ServicePointManager.SecurityProtocol’ değeri aşağıdaki örnekte gösterildiği gibi  ‘SecurityProtocolType.Tls12’ olarak atandığında.

 

Örnek (C#):

System.Net.ServicePointManager.SecurityProtocol = System.Net.SecurityProtocolType.Tls12;

 

Esri platformu için TLS 1.2’ye geçiş için ek kaynaklar, Microsoft geliştirici belgelerine ve Esri Ürün Güvenliği ekibine referanslar dahil olmak üzere Important Updates for the ArcGIS Platform and Transport Layer Security (TLS) Protocol Support sayfasında bulunabilir.

HTTP

Eski uygulamalarda HHTP’nin kullanımıyla ilgili olarak, ArcGIS Online üzerine gelebilecek gelecekteki bir güvenlik güncellemesiyle, endüstride bir standart uygulama olacak, tüm uygulamaların sadece HTTPS kullanmaları gerektiği unutulmamalıdır.

İstemci makinelerindeki sertifika depolarında ilgili sertifikalara sahip olmadığından, daha önce HTTP ile çalışan ArcObject .NET uygulamaları HTTPS ile sertifika deneyimi hataları yaşayabilir. İstemci makineler bu nedenle buna göre yapılandırılmalıdır (örneğin, uygun sertifikalarının sertifika depolarına eklenmesiyle). Test ve geliştirme ortamları için sunucu ‘test’ sertifikaları oluşturulabilir. Bir Sertifika Yetkilisinden bir sertifika istemeden yalnızca HTTP’yi destekleyen bir test sunucusunda geliştiricilerin istemci kodlarını test etmelerine izin verilebilir. Bu intranet senaryoları için ortaktır.

TLS 1.2 hakkında daha fazla bilgi için, Esri Teknik Destek belgesine bakın: Important Updates for the ArcGIS Platform and Transport Layer Security (TLS) Protocol Support

Not:

ArcGIS Desktop versiyonlarının her birinin destek durumu için Esri Destek sitesindeki Product Life Cycle sayfalara bakın.

İlgili Bağlantılar: