ArcGIS Enterprise Antivirüs Yapılandırılması

Ortamınızda ArcGIS Enterprise çalıştıran her ana bilgisayar için güvenlik riskini ayrı ayrı değerlendirmenizi ve her birinin güvenlik riski düzeyine uygun araçları seçmenizi şiddetle tavsiye ederiz.

Ayrıca, herhangi bir virüsten koruma projesini kullanıma sunmadan önce, masaüstü ve web istemcileri de dahil olmak üzere tüm sistemi tam yük altında test etmenizi ve kararlılık ve performanstaki tüm değişiklikleri ölçmenizi öneririz.

Virüs koruma yazılımı, yürütmek için sistem kaynaklarına ihtiyaç duyar ve bazı durumlarda yazılım performansını etkileyebilir. ArcGIS Enterprise ana bilgisayarlarınız üzerinde herhangi bir performans etkisi olup olmadığını belirlemek için virüsten koruma yazılımınızı yüklemeden önce ve sonra test yapmanız ve herhangi bir performans etkisine karşı istediğiniz güvenlik düzeyini dengelemeniz gerekir.

Güvenlik Risk Faktörleri

Kuruluşunuzun risk faktörlerini ölçmeye yardımcı olacak faktörler şu şekildedir.

  • ArcGIS üzerinde saklanan verilerinizin kuruluşunuz için önemi
  • Cihazınız üzerinde saklanan verilerin kuruluşunuz için önemi
  • Bilgileriniz korumak için belirlediğiniz güvenlik düzeyi
  • Bu bilgilere erişimde kaybedeceğiniz maliyet
  • Cihazınız üzerinden diğer kaynaklara kötü amaçlı yazılım veya virüslerin yayılması

Yüksek Riskli Sunucular

Birbirine bağlı herhangi bir sunucu, bir miktar enfeksiyon riski altındadır. En yüksek riskli sunucular genellikle aşağıdaki kriterlerden birini veya birkaçını karşılar:

  • Sunucuların halka açık internet üzerinden erişilebilir olması
  • Sunucuların bir güvenlik duvarı tarafından yönetilmeyen açık bağlantıdan erişilebilir olması
  • Sunucuların diğer sunuculardaki dosyalara erişim ve çalıştırma işlemlerini yapabilmesi

Anti-virüs Tipleri

Gerçek Zamanlı / Aktif Virüs Taraması : Bu tip uygulamalar sürekli olarak sunucu ve kullanıcı makinelerinden gelen giden istekleri takip eder. Yeni oluşturulan dosyaları virus ve kötü amaçlı yazılımlara karşı korur.

Endpoint protection (Uç nokta koruması) tipik olarak kötü amaçlı yazılım ve virüslere karşı korumayı birden fazla cihaz ve işletim sistemi noktasında gerçekleştirir.

Aktif virüs taraması veya Endpoint koruma yazılımı, ArcGIS Enterprise bileşenlerinde aşağıdaki sorunlara neden olabilir:

  • ArcGIS yazılımının kurulum, konfigürasyon, güncelleme işlemlerini yavaşlatabilir veya engelleyebilir.
  • Yedek oluşturma veya yedekten geri dönme işlemlerini yavaşlatabilir veya engelleyebilir.
  • Harita veya sahne servislerinde tile oluşturmayı yavaşlatabilir veya engelleyebilir.

Bu sorunları gidermek için güvenlik seviyenizi gevşetebilirsiniz. Ancak bu durumda sistemi riske atabilirsiniz. Performans ve güvenlik beklentilerinize göre bu dengeyi sağlamalısınız.

Virüs Taraması ve Yazılım Kaldırma Araçları:

Virüs Tarama yazılımı, mevcut dosyaları dosya bulaşmasına karşı tarar. Dosyaları virüs bulaştıktan sonra algılar. Virüs taramaları tipik olarak belirli bir zamanlamaya göre çalışır.

Virüs Tarama ArcGIS Enterprise bileşenlerinde aşağıdaki sorunları oluşturabilir.

  • Virüs tarayıcı bir veritabanı dosyası açtıysa ve ArcGIS Enterprise veritabanını açmaya çalıştığında hala açıksa, dosyanın ait olduğu veritabanı şüpheli olarak işaretlenebilir.
  • Yazılım bileşenleri veya yazılım tarafından oluşturulan geçici dosyalar, bilinen kötü amaçlı yazılım çeşitlerinin buluşsal yöntemlerine benziyorsa, virüs taraması potansiyel olarak yanlış sonuçlar elde edebilir.

Web Application Firewall (Web Uygulaması Güvenlik Duvarı)

WAF veya Web Uygulaması Güvenlik Duvarı, bir sunucu ile İnternet arasındaki HTTP trafiğini filtreleyerek ve izleyerek web uygulamalarının ve uygulama sunucularının korunmasına yardımcı olur. WAF, sunucunuza ulaşmadan önce HTTP trafiğini inceler ve sitenizin işlevselliğine zarar verebilecek veya verileri tehlikeye atabilecek tehditleri filtreleyerek korur. Bir web uygulaması sunucusunun önüne bir WAF yerleştirilmesi, web uygulaması ile İnternet arasına bir kalkan görevi görür. Birçok WAF, bir kullanıcının kötü amaçlı bir dosyayı kabul ettikten sonra uzaktan kod yürütmesine izin veren zararlı bir teknik olan Kötü Amaçlı dosya çalıştırma gibi saldırılara karşı koruma sağlayabilir.

  • ArcGIS Enterprise dosyaları ve dizinleri ne zaman virüs taramasının dışında bırakılmalıdır?

Yedekleme ve Geri Yükleme Operasyonları

ArcGIS Enterprise dağıtımınızın yedeklerini oluşturabilir ve bir arıza veya bozulma durumunda en son yedeği geri yükleyebilirsiniz. Bu, yedeklemeyi oluşturduğunuzda var olan portal öğelerini, hizmetleri ve verileri kurtarmanıza olanak tanır.

ArcGIS Enterprise bileşenlerinin yedek dosyalarını dışa aktarmak için webgisdr yardımcı programını kullanın. Bu araç ile aşağıda belirtilen içerikleri yedekleyebilirsiniz:

  • Portal ögeleri ve ayarları
  • GIS servisleri ve ayarları
  • İlişkisel data store ve tile cache data store

Yedekleme veya geri yükleme işlemi başladığında aktif anti virüs tarayıcıları oluşturulan dosyaları tarayacaktır. Bu dosyalar %temp% dizininde veya belirtilen yedekleme / geri yükleme dizininde oluşacaktır. Bu tarama işlemi yazma sürecini uzatacak, dolayısıyla yedekleme / geri yükleme süreçlerinin tamamlanması zaman alacaktır.

Ürün Kurulum Güncelleme veya Kaldırma

Benzer olarak  yazılımın kurulum, güncelleme ve kaldırılması sürecinde disk üzerine işlemler gerçekleştirilir. Aktif anti virüs taraması yazılımların kurulumu güncellenmesi veya kaldırılması süreçlerini uzatacaktır.

Harita, Sahne tile, Tile Paket Oluşturma veya Kopyalama

Harita, sahne tile oluşturma işlemleri esnasında binlerce dosya yazma işlemleri olacaktır. Önbellekleme işlemleri zaman alacaktır. Paket dosya halinde oluşturulan cache formatları (.bundle) daha kullanışlı olacaktır;

  • Dosya sayısı azaldığı için kopyalama işlemi daha kolaydır.
  • Cache verisinin diskteki boyutu azalır.
  • Tile oluşturma disk I/O azalması olacağından daha hızlı olur.
  • Oluşturulan tile verileri birden fazla cihazda barındırılırsa network trafiğinizde azalma olur.

Yukarıda yer alan işlemler esnasında anti virüs yazılımınızı devredışı bırakıp, süreç tamamlandıktan sonra tekrar devreye alabilirsiniz.

  • Dizinlerin ve İşlemlerin Anti Virüs Tarafından Hariç Tutulması

Anti virüs yazılımlarını yapılandırarak belirli dizinler veya dosyaları tarama işlemi dışında tutabilirsiniz. Bu işlem performans arttıracak ve dosya ve klasörlerin kilitlenmesini önleyecektir.

Bu dizinlerdeki bu dosyalara virüs bulaşırsa, virüsten koruma yazılımınız bulaşmayı algılayamaz. Bu dizinleri ve süreçleri tarama seviyesi gevşetilebilir, ancak yine de düşük kullanım zamanlarında periyodik olarak taranmalıdır. Performans beklentilerinizi güvenlik ihtiyaçlarınız ile dengelemeniz gerekir.

ArcGIS Server Dizinleri

  • \arcgisserver\directories\arcgiscache\
  • \arcgisserver\directories\arcgisjobs\
  • \arcgisserver\directories\arcgisoutput\
  • \arcgisserver\directories\arcgissystem \
  • \arcgisserver\config-store\

ArcGIS Data Store Dizinleri

  • \arcgisdatastore\pgdata\
  • \arcgisdatastore\nosqldata\

Portal For ArcGIS Dizinleri

  • \arcgisportal\temp\
  • \arcgisportal\dsdata\
  • \portalforarcgis\content\arcgisportal\db\
  • \ portalforarcgis\content\arcgisportal\index\

Servis Kullanıcısı Geçici Dizinleri

  • \%ArcGIS Account%\appData\Local\temp\

Süreç Uygulama Dizinleri (Windows)

  • %ProgramFiles%\ArcGIS\Server\framework\etc\service\bin\ArcGISServer.exe
  • %ProgramFiles%\ArcGIS\Server\framework\runtime\ArcGIS\bin\ArcSOC.exe
  • %ProgramFiles%\ArcGIS\Server\bin\ArcSOC.exe
  • %ProgramFiles%\ArcGIS\Server\framework\runtime\jre\bin\rmid.exe
  • %ProgramFiles%\ArcGIS\Server\framework\runtime\jre\bin\javaw.exe
  • %ProgramFiles%\ArcGIS\Portal\framework\service\bin\ArcGISPortal.exe
  • %ProgramFiles%\ArcGIS\Portal\framework\runtime\jre\bin\javaw.exe
  • %ProgramFiles%\ArcGIS\Portal\framework\runtime\jre\bin\java.exe
  • %ProgramFiles%\ArcGIS\Portal\framework\runtime\pgsql\bin\postgres.exe
  • %ProgramFiles%\ArcGIS\DataStore\framework\etc\service\bin\ArcGISDataStore.exe
  • %ProgramFiles%\ArcGIS\DataStore\framework\runtime\jre\bin\javaw.exe
  • %ProgramFiles%\ArcGIS\DataStore\framework\runtime\jre\bin\java.exe
  • %ProgramFiles%\ArcGIS\DataStore\framework\runtime\pgsql\bin\postgres.exe
  • %ProgramFiles%\NotebookServer\framework\etc\service\bin\ArcGISNBServer.exe

Hangi dizin ve dosyalar virüs taramasında hariç tutulmamalıdır?

  • \arcgisserver\config-store\uploads
  • \arcgisserver\directories\arcgissystem\arcgisuploads
  • \portalforarcgis\content\arcgisportal\content\items
Bu yazı için bir etiket bulunmamaktadır.

Kubernetes Üzerinde ArcGIS Enterprise

Sektör lideri jeo-uzamsal platform olan ArcGIS Enterprise’ın bu tamamen yeni uygulaması, yeni bir mikro hizmet mimarisinde tasarlandı ve 10.9 sürümünde kullanıma sunulacak.

Dağıtın, yapılandırın ve kullanın

İlk demomuzda Markus, ArcGIS Enterprise’ı Kubernetes üzerinde dağıtma, yapılandırma ve kullanma adımlarına genel bir bakış sunuyor. Markus, kuruluşu için üretime hazır ve yüksek düzeyde kullanılabilir bir jeo-uzamsal ortamın nasıl dağıtılacağını gösteriyor.

Başlamadan önce, Markus’un konuşlandırmanın bir ön koşulu olan Kubernetes kümesini sağladığını fark etmiş olabilirsiniz.

Kubernetes üzerinde ArcGIS Enterprise şu anda 3 adet  kubernetes sağlayıcı üzerinde desteklenmektedir. Zamanla bu büyüyecektir.

Şirket içi veri merkezi :

  • Red Hat OpenShift Container Platform

Bulutta yönetilen Kubernetes hizmetleri

  • Microsoft Azure Kubernetes Service (AKS)
  • Amazon Elastic Kubernetes Service (EKS)

Bu ortamlardan birinde küme sağladığınız zaman dağıtıma hazırsınız

Esri tarafından sağlanan komut dağıtım komut scriptini (./deploy.sh) direk olarak etkileşimli mod üzerinde (ilk defa kullanacak olan kullanıcılar için önerilir) veya sessiz modda konfigürasyon dosyasını düzenledikten sonra çalıştırabilirsiniz.

Script çalışırken kubernetes clusterlar ile konuşarak podları oluşturmaya başlayacaktır. (namespace isimlendirmesi sizin tercihinize göre olacaktır)

Dağıtım işlemi tamamlandıktan sonraki aşama konfigürasyon aşaması olacaktır. Bu aşama için hazırlanmış scripti kullanabilir (./configure.sh) veya browser üzerinden kurulum sihirbazı sayesinde bu işlemi tamamlayabilirsiniz.

Güncellemeler ve Yükseltmeleri gerçekleştirin.

Bu demoda, Shreyas, Kubernetes’te ArcGIS Enterprise’da güncelleme uygulama sürecinde bize yol gösteriyor. Güncellemeler, yükseltmelerden (yeni bir yazılım sürümü) ve güncellemelerden (yeni bir yama) oluşur ve yöneticilere, yeni özellikler ve geliştirmeleri kullanılabilir olur olmaz sorunsuz bir şekilde alma fırsatı verir.

 

Yönetim araçlarına bir güncelleme motoru yerleştirilmiştir. Bir güncelleme geldiğinde podların güncellenmesi için bir bildirimde bulunur. Podların tipine göre bir güncelleme stratejisi uygulanır. Örneğin;

  • Mavi-Yeşil: Bu strateji, barındırılan veri depoları tarafından uygulananlar gibi StatefulSets için uygulanır. Güncellenebilir olduğunda yeni kubernetes deployment paketi ile containerlar (podlar) oluşturulur. Veriler taşınır ve upgrade edilir. Yeni veri deposunun sağlıklı çalıştığı gözlemlendikten sonra eski veri deposu kapatılır. Yeni veri deposuna geçiş yapılır.
  • Yuvarlama: Bu strateji satece Kubernetes dağıtım ögeleri için kullanılır. Yeni podlar oluşturulurken eski podlar sıra ile kapatılır. Bu yaklaşım, güncellemeleriniz için kapalı kalma süresini en aza indirmeyi amaçlar.

Servisleri Ölçekleyin

Her hizmet talebinin önemli olduğunu ve yöneticilerin, sistemlerin ne zaman sağlıklı olduğunu ve beklenen hizmet düzeyi sözleşmelerinde (SLA) performans gösterdiğini ve belki de daha da önemlisi, ne zaman sağlıklı olmadıklarını bilmelerinin zorunlu olduğunu anlıyoruz.

Kubernetes üzerinde ArcGIS Enterprise, kullanıma hazır izleme araçları sağlamak için metrikleri toplamak için popüler bir araç olan Prometheus’u ve sonuçları görüntülemek için bir metrik görselleştiricisi olan Grafana’yı içerir.

İstekler sistem üzerinden akarken, çeşitli podlardan temel ölçümler toplanır ve Prometheus tarafından hazırlanır. Metrikler, Prometheus sorgu dili (PromQL) kullanılarak sorgulanabilir.

Kubernetes üzerinde ArcGIS Enterprise GIS hizmetleri, iki modda çalışacak şekilde yapılandırılabilir;

  • Paylaşılan – hizmet bu modda (CPU ve bellek) diğer hizmetlerle paylaşılan kaynakları kullanarak çalışır.
  • Özel – hizmet kendi özel kaynaklarını kullanarak çalışır.

10.9’da, harita hizmetleri ve barındırılan özellik hizmetleri, paylaşılan modda çalışacak şekilde yapılandırılabilir. Özel mod, dinamik harita hizmetleri, özellik hizmetleri ve sistem coğrafi işleme hizmetleri için desteklenir ve çok özel kaynak kontrol sınırı gerektiren veya SLA’ları olan hizmetler için idealdir.

Yöneticiler, hizmet podlarının sayısının yanı sıra her biriyle ilişkili CPU ve belleği kontrol etmek için ArcGIS Enterprise Manager veya Admin API’yi kullanabilir.

Yöneticiler, hizmet kullanım ölçümlerinin iki özelliğini podlar üzerinde ayrıntılı kaynak denetimiyle birleştirerek, bir hizmetin SLA’sını karşılayabilmesini ve iş akışlarına anında uyum sağlayabilmesini sağlamak için çok güçlü otomatik ölçeklendirme iş akışlarını dağıtabilir.

Ortalama yanıt süreleri artarsa, yani hizmet belirli bir süre boyunca gelen yükü kaldıramazsa, Yönetici API’sini kullanarak podların ölçeğini ayarlamak için bir tetikleyici oluşturulabilir.

Bu şekilde, yöneticiler, güçlü hizmet kullanım metriklerinin otomasyonunu ve yerleşik özelliklerini kullanarak, SLA’larını karşılamak için CBS hizmetlerini (yukarı veya aşağı) ölçeklendirebilir.

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

ArcGIS 360 VR

ArcGIS 360 VR Web Uygulaması, masaüstünde, mobil cihazlarda ve sanal gerçeklik (VR) başlıklarında 360 VR deneyimi sağlamaktadır. 3VR, CityEngine sahnelerinin panoramik görüntülerinin VR ortamında görüntülenebilmesine izin veren bir dışa aktarım uzantısıdır.

3VR Galeri

3VR galerisi, Sanal gerçeklik ortamında, diğer kullanıcıların oluşturduğu sanal gerçeklik deneyimlerini görebildiğimiz ortamdır. Artık CityEngine ile üretilen 3VR uzantılı sahnleri web ortamında da görüntüleyebilmekteyiz.

Web uygulamasını kullanma

3VR’yi görüntülemek için VR, masaüstü veya mobil cihazları kullanabilmekteyiz. CityEngine ortamında oluşturduğumuz bookmarklar ve senaryolar, 3VR’ı daha fazla keşfetmemize olanak tanır. CityEngine yazılımında daha önceden tanımlanmış görünümlere gitmek için bakış açılarına tıklamamız yeterlidir. 3VR’da birden fazla senaryo olduğunda ise belirli alternatifleri görmek için VR başlığı veya kumandasını kullanarak senaryolar arasında geçiş yapabilmekteyiz.

Masaüstünde ve mobilde ekran deneyimi

Masaüstünde gezinmek ve etrafa bakmak için fareyi kullanabiliriz. Mobil cihazda gezinmek için cihazı hareket ettirmemiz yeterlidir.

ArcGIS 360 VR, elimizde bulunan üç boyutlu coğrafi içerikleri sanal gerçeklik ortamında deneyimleyebilmemizi sağlamaktadır. Bu sayede bir alan ile ilgili değişiklik yapmak istediğimizde alan ile ilgili önerilen gelişimleri senaryolar halinde sanal gerçeklik ortamında sunabilmekteyiz.

Senaryolara örnek vermek gerekirse örneğin bir üç boyutlu bina nesnesinin iç mekan görünümlerini sunmak istiyoruz. Senaryolarımızdan biri binanın iç mekan görünümünü kapsasın diğeri ise bina hakkında detaylı bilgiler sağlasın. Bu bilgiler binanın içerisinde bulunan borular elektrik ekipmanları ve diğer mekanik ekipmanlar olsun.

Bunun için 2 adet senaryo oluşturalım biri duvarların bulunduğu sadece iç mekan görünümü diğeri ise duvarların kaldırıldığı mekanik ekipmanların sunulduğu senaryo olsun.

ArcGIS 360 VR coğrafi içerikleri, tasarım içerikleri gibi çoğu veriyi sanal gerçeklik / panaromik gibi deneyimlere dönüştürebilmenizi sağlar.

Esri Türkiye 2021

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

AEC Web Uygulamaları Serisi – 1

Mimarlık, Mühendislik ve İnşaat (AEC) şirketlerinin, projeleri paylaşmaya ve bu projeler üzerinde işbirliği yapmaya doğal bir ihtiyacı vardır.

AEC firmaları, projeler yoluyla sonuçları müşterilere ulaştırır. Bu bağlamda projeler ile ilgili ilerleyişi takip edebilme , öncesi ve sonrası arasındaki farkı sunabilme, projenin sağlayacağı faydanın aktarılabilmesi gibi süreçler çok önemlidir.

Daha önceki ArcGIS Pro’da Revit Dosyalarının Kullanımı ve ArcGIS Pro’da BIM 360 Verilerine Erişim yazılarımda ana veri modelinin ArcGIS platformunda içeri aktarımı ve paylaşılması gibi konulardan bahsettim. Bu blog yazımda ise bu veri modellerini kullanarak ArcGIS Online veya ArcGIS Enterprise ortamlarında web tabanlı uygulamaları nasıl geliştireceğimizi inceleyeceğiz.

*ArcGIS Pro üzerinde Revit modellerinin paylaşımı için Building Scene Layer Package seçeneğini kullanarak bir SLPK veri katmanına dönüştürdükten sonra ArcGIS Online ortamında veya ArcGIS Enterprise ortamında paylaşımını gerçekleştirebilmekteyiz. Ancak bazı ileri seviye uygulama geliştirme süreçlerinde Revit modelini bir coğrafi veri tabanına dönüştürerek de paylaşımına ihtiyaç duyabilmekteyiz. Bu blog yazımdaki örnek uygulamalarda SLPK ve GDB içerisine yazılan Revit dosyalarını kullanacağız.

*Uygulama geliştirme arayüzü olarak ArcGIS Experience Builder’ı kullandım. Buna ek olarak uygulamalara fonksiyon katmaları için ArcGIS Survey 123, ArcGIS Dashboards, ArcGIS Web AppBuilder gibi uygulamalarıda kullandım.

Örnek Uygulamalar

Gelişim Alanı Karşılaştırma – Halk Katılımı

Örnek uygulamaları senaryolarına göre oluşturalım. İlk olarak halka, gelişim alanı ile ilgili öncesi ve sonrası arasındaki farkı üç boyutlu olarak görebileceği arayüz sunalım, gelişim alanında inşa edilmesi planlanan yapıları üç boyutlu görebilsin.

Örnekte olduğu gibi iki adet sahne arasındaki farkı görebiliyoruz ve planlanan gelişim alanında üç boyutlu olarak Revit modellerini görüntüleyebilmekteyiz. Buna ek olarak sol tarafta mevcuttaki yeşil alan bina alanı gibi değerleri ile gelişim sonrasında alanın nasıl değişeceği ile ilgili bilgileri görüntüleyebilmekteyiz.

Bu uygulamada yeni yapıların inşa edileceği alanı üç boyutlu olarak, değişecek yeşil alan ve bina alanı gibi değerleri de sözel olarak sunduk. Buna ek olarak halka bu durumun uygun olup olmadığını da sorabiliriz uygulama içerisinde bir ArcGIS Survey123 anketi konumlandırabiliriz.

Bu ankette sizce bu gelişim uygun mu, herhangi bir yorumunuz var mı gibi sorular oluşturarak geri dönüşler alabiliriz. Hatta bu geri dönüşlerden grafikler oluşturarak kullanıcılara genel olarak insanların verdiği cevapları sunabiliriz.


Tüm bu ekranlar tek bir ekrandan ulaşılabilir bir şekilde tasarlandığı için kullanıcılar için güzel bir deneyim oluşturmaktadır.

Bina Keşif Uygulaması:

Bu örneğimizde ise bir bina ile ilgili bilgileri kullanıcılara sunalım ama bu bilgiler hem iç mekan hakkında hem de binanın çevresindekilerhakkında olsun. Bu uygulamamızda da aynı şekilde bir Revit dosyası kullanacağız.

Solda bulunan butonlar uygulamaya ek özellikler katmaktadır, bu sayede sadece bir modeli kullanıcılara sunmaktan ziyade, bilgiler veriyor ve geri dönüşler-başvurular alabiliyoruz. 360 görünüme geçtiğimizde ise Revit modelini görüntüleyebilmekteyiz.

Bu uygulamada ek olarak üç boyutlu iç mekan görüntüsünde bir elemana tıkladığımızda o eleman ile ilgili aksiyonlara erişebilmekteyiz. Bu sayede örneğin zemine tıkladığımızda zemin ile ilgili materyal bilgilerine erişerek bu materyali üç boyutlu olarak görüntüleyebilmekteyiz

ArcGIS Online ve ArcGIS Enterprise ortamlarında Revit modellerini üç boyutlu olarak paylaşarak bu uygulamaları sizler de oluşturabilirsiniz. Bu blog serisinde BIM-GIS entegrasyonunu etkin bir şekilde kullanımı ile ilgili örnekleri kapsayan blog yazılarına devam edeceğiz.

Esri Türkiye 2021

 

Bu yazı için bir etiket bulunmamaktadır.
ArcGIS API for JavaScript ile Web Uygulamaları – 8 Etiketleme

ArcGIS API for JavaScript ile Web Uygulamaları – 8 Etiketleme

Etiketleme

Harita üzerinde gösterimi yapılan objelere ait görsellikle birlikte, objenin nitelikleri (attributes)  kullanılarak harita üzerinde etiketler gösterimi sağlanabilmektedir. Etiketleme özelliği birçok farklı API içerisindeki sınıf tarafından sağlanmaktadır. Bununla birlikte gösterimini sağladığımız haritamızın 2D veya 3D olmasına ve üzerinde gösterilen katmanın tipi, geometri tipine göre de farklı özellikler ve kaynaklar mevcuttur. Daha detaylı bilgi için linke tıklayınız.

Örneğimizde 2D bir web haritasında feature tipinde bir katman içerisinde öznitelik bilgileri kullanılarak farklı etiketlemeler gerçekleştireceğiz.

Adımlar

  • Bilgisayarınızda öncelikle bir web sunucusu bulunmalı. Bu web sunucusunda bir HTML dosyası barındırın ve herhangi bir metin editörü dosyayı açınız.
  • Önceki blog yazılarımızdan HTML şablonu kopyalayınız.
  • Etiketleme için ArcGIS Online üzerinden yayınlanan genele açık dünya şehirleri feature servisini kullanacağız.

Bu servis içerisinde birçok nitelik barındırmaktadır.  Aşağıda örnek değerleri görebilirsiniz:

Basit Etiketleme

Etiketleme için LabelClass sınıfı kullanılacaktır.

              const labelClass = {
                // autocasts as new LabelClass()
                symbol: {
                    type: "text", // autocasts as new TextSymbol()
                    color: "red",
                    haloColor: "white",
                    haloSize: "1px",
                    font: {
                        // autocast as new Font()
                        family: "Arial Unicode MS",
                        size: 12,
                        weight: "bold"
                    }
                },
                labelPlacement: "above-center",
                labelExpressionInfo: {
                    expression: "$feature.ADMIN_NAME"
                }
            };

Bu sınıf içerisinde etiketimizi yazı tipi, renk, konumu, etiket değeri v.b. özelliklerini belirleyebiliyoruz. Sembol olarak TextSymbol sınıfında türettiğimiz sembolümüzde font olarak “Arial Unicode MS” kullanılmıştır. Etiket değeri olarak objemizin içerisindeki “ADMIN_NAME” nitelik değerinin kullanılması sağlanmıştır.

Oluşturduğumuz etiket nesnesi “labelClass” ‘ı, katmanımız içerisinde “labelingInfo” özelliğine tanıtımını da aşağıdaki gibi gerçekleştiriyoruz:

            map.layers = [new FeatureLayer({
                portalItem: {
                    // autocasts as new PortalItem
                    id: "6996f03a1b364dbab4008d99380370ed"
                },
                labelingInfo: [labelClass],
            })];

HTML kodun son hali aşağıdaki gibi olmalı:

<html>
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="initial-scale=1, maximum-scale=1, user-scalable=no">
    <title>ArcGIS JavaScript API Örnekleri: Etiketleme</title>
    <style>
        html,
        body,
        #haritaBlogu {
            padding: 0;
            margin: 0;
            height: 100%;
            width: 100%;
        }
    </style>
    <link rel="stylesheet" href="https://js.arcgis.com/4.20/esri/themes/light/main.css">
    <script src="https://js.arcgis.com/4.20/"></script>
    <script>
        require([
            "esri/config",
            "esri/Map",
            "esri/views/MapView",
            "esri/layers/FeatureLayer",
        ], function (esriConfig, Map, MapView, FeatureLayer) {
            // API anahtarı girilmeli
            esriConfig.apiKey = "XXXXX"
            var map = new Map({
                basemap:  "arcgis-imagery-standard"
            });
            var view = new MapView({
                container: "haritaBlogu",
                map: map,
                center: [35, 39], // boylam, enlem
                zoom: 7
            });
            const labelClass = {
                // autocasts as new LabelClass()
                symbol: {
                    type: "text", // autocasts as new TextSymbol()
                    color: "red",
                    haloColor: "white",
                    haloSize: "1px",
                    font: {
                        // autocast as new Font()
                        family: "Arial Unicode MS",
                        size: 12,
                        weight: "bold"
                    }
                },
                labelPlacement: "above-center",
                labelExpressionInfo: {
                    expression: "$feature.ADMIN_NAME"
                }
            };
            map.layers = [new FeatureLayer({
                portalItem: {
                    // autocasts as new PortalItem
                    id: "6996f03a1b364dbab4008d99380370ed"
                },
                labelingInfo: [labelClass],
                renderer: {
                    type: "simple", // autocasts as new SimpleRenderer()
                    symbol: {
                        type: "simple-marker", // autocasts as new SimpleMarkerSymbol()
                        color: "rgba(0,100,0,0.6)",
                        size: 3,
                        outline: {
                            color: "yellow",
                            width: 4
                        }
                    }
                }
            })];
        });
    </script>
</head>
<body>
    <div id="haritaBlogu"></div>
</body>
</html>

Harita görünümü aşağıdaki gibi görüntülenir.

Gelişmiş Etiketleme

Harita üzerinde gelişmiş etiketlemede yapılabilmektedir. Örneğin farklı bir özniteliğin değerinin, belirlenen bir değerden az veya çok olması durumunda farklı renklendirmeler, belirli bir ölçekte sadece istenen bilginin etiket olarak gösterilmesi gibi gelişmiş etiketleme seçenekleri desteklenmektedir.

İlk örneğimizde sadece Türkiye verilerinde görüntülemek istiyoruz. Bunun için özniteliklerde “FIPS_CNTRY” kullanılarak sadece “TU” verisi içeren değerler kümesi belirliyoruz. Bu küme sadece Türkiye içerisindeki etiketlerde geçerli olacaktır. Bu kümenin etiketi olarak “FIPS_CNTRY” değerini mavi renkte göstereceğiz.

            const sadeceTurkiyeLabelClass = {
                symbol: {
                    type: "text", // autocasts as new TextSymbol()
                    color: "blue",
                    haloColor: "white",
                    haloSize: "1px",
                },
                labelExpressionInfo: {
                    expression: "$feature.FIPS_CNTRY"
                },
                labelPlacement: "below-left",
                where: "FIPS_CNTRY = 'TU'"
                };

Yukarıdaki kodu uyguladığımızda aşağıdaki harita görünümü oluşacaktır:

Harita üzerine dikkatlice bakıldığında, Türkiye içerisindeki gösterimi yapılan objelere ait etiketlerde mavi karakter ile “TU” görüntülenmekteyken, Türkiye dışında ülke kodu görüntülenmemektedir. Bu koşulu sağlayan durum etiket sınıfında mevcut “where” özelliğinin kullanılmasıdır.

Bir diğer örneğimizde ise etiketin öznitelik değerinin farklı renklerde durumuna göre görüntülenmesi. Örnek verimizde “POP_RANK” olarak ülke nüfusunun hangi kategoride olduğu bilgisi bulunmaktadır. Bu değeri kullanarak etiketlerimizde farklı renklerde bir değer gösterebiliriz.

            const azNufusLabelClass = {
                symbol: {
                    type: "text", // autocasts as new TextSymbol()
                    color: [255,201,14],
                    haloColor: "white",
                    haloSize: "1px",
                },
                labelExpressionInfo: {
                    expression: "$feature.POP_RANK"
                },
                labelPlacement: "below-right",
                where: "POP_RANK <= 2"
            };
            const cokNufusLabelClass = {
                symbol: {
                    type: "text", // autocasts as new TextSymbol()
                    color: [0,162,232],
                    haloColor: "white",
                    haloSize: "1px",
                },
                labelExpressionInfo: {
                    expression: "$feature.POP_RANK"
                },
                labelPlacement: "below-right",
                where: "POP_RANK > 2"
            };

Bu gösteriminin sağlanması için 2 farklı etiket oluşturup, “where” koşullarını birbirleriyle ilişkilendirmek. Aşağıdaki harita görünümünde görüldüğü üzere bazı il adlarında rakamlar ve nüfus yoğunluğuna göre farklı renklerde görüntülenmektedir.

Anlatılan farklı örnekleri tek bir uygulama içerisinde kullanımı aşağıda belirtilmektedir.

<html>
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="initial-scale=1, maximum-scale=1, user-scalable=no">
    <title>ArcGIS JavaScript API Örnekleri: Etiketleme</title>
    <style>
        html,
        body,
        #haritaBlogu {
            padding: 0;
            margin: 0;
            height: 100%;
            width: 100%;
        }
    </style>
    <link rel="stylesheet" href="https://js.arcgis.com/4.20/esri/themes/light/main.css">
    <script src="https://js.arcgis.com/4.20/"></script>
    <script>
        require([
            "esri/config",
            "esri/Map",
            "esri/views/MapView",
            "esri/layers/FeatureLayer",
        ], function (esriConfig, Map, MapView, FeatureLayer) {
            esriConfig.apiKey = "XXXXX"
            var map = new Map({
                basemap: "arcgis-imagery-standard"
            });
            var view = new MapView({
                container: "haritaBlogu",
                map: map,
                center: [35, 39], // boylam, enlem
                zoom: 7
            });
            const labelClass = {
                // autocasts as new LabelClass()
                symbol: {
                    type: "text", // autocasts as new TextSymbol()
                    color: "red",
                    haloColor: "white",
                    haloSize: "1px",
                    font: {
                        // autocast as new Font()
                        family: "Arial Unicode MS",
                        size: 12,
                        weight: "bold"
                    }
                },
                labelPlacement: "above-center",
                labelExpressionInfo: {
                    expression: "$feature.ADMIN_NAME"
                }
            };
            const sadeceTurkiyeLabelClass = {
                symbol: {
                    type: "text", // autocasts as new TextSymbol()
                    color: "blue",
                    haloColor: "white",
                    haloSize: "1px",
                },
                labelExpressionInfo: {
                    expression: "$feature.FIPS_CNTRY"
                },
                labelPlacement: "below-left",
                where: "FIPS_CNTRY = 'TU'"
            };
            const azNufusLabelClass = {
                symbol: {
                    type: "text", // autocasts as new TextSymbol()
                    color: [255, 201, 14],
                    haloColor: "white",
                    haloSize: "1px",
                },
                labelExpressionInfo: {
                    expression: "$feature.POP_RANK"
                },
                labelPlacement: "below-right",
                where: "POP_RANK <= 2"
            };
            const cokNufusLabelClass = {
                symbol: {
                    type: "text", // autocasts as new TextSymbol()
                    color: [0, 162, 232],
                    haloColor: "white",
                    haloSize: "1px",
                },
                labelExpressionInfo: {
                    expression: "$feature.POP_RANK"
                },
                labelPlacement: "below-right",
                where: "POP_RANK > 2"
            };
            map.layers = [new FeatureLayer({
                portalItem: {
                    // autocasts as new PortalItem
                    id: "6996f03a1b364dbab4008d99380370ed"
                },
                labelingInfo: [labelClass, sadeceTurkiyeLabelClass, azNufusLabelClass, cokNufusLabelClass],
                renderer: {
                    type: "simple", // autocasts as new SimpleRenderer()
                    symbol: {
                        type: "simple-marker", // autocasts as new SimpleMarkerSymbol()
                        color: "rgba(0,100,0,0.6)",
                        size: 3,
                        outline: {
                            color: "yellow",
                            width: 4
                        }
                    }
                }
            })];
        });
    </script>
</head>
<body>
    <div id="haritaBlogu"></div>
</body>
</html>

 

ArcGIS JavaScript API ile yazılmış diğer örnekleri incelemek için linke tıklayınız.

İleri düzey ArcGIS Developer eğitimleri,atölye çalışmaları ve yol gösterme hizmetleri için Esri Türkiye Profesyonel Hizmetler birimi ile irtibata geçiniz.

Esri Türkiye 2021

ArcGIS Pro ile Uygunluk Modelleyici (Suitability Modeler)

Uygunluk Modelleyici (Suitability Modeler), bir CBS analisti için en yaygın uygulamalardan biridir. Uygunluk modelleyici ile bir nesneyi yerleştirmek veya bir alanı korumak gibi yer seçim kararlarınızda en iyi konumu belirlemek için kullanılabilirsiniz. Örneğin bir alışveriş merkezi, konut geliştirme veya kayak merkezi inşa etmek için en iyi yeri belirlemede uygunluk modeli kullanabilirsiniz. Parklar, nesli tükenmekte olan yaşam habitatı veya taşkın kontrolü için en iyi alanların saptanması için de kullanılabilir.

Uygunluk modeli oluşturmak, doğrusal olmayan yinelemeli bir süreçtir. Bundan dolayı uygunluk modelinde adımları sırayla izlemeniz gerekmez. Bunun yerine, ileri geri, yinelemeli bir karar verme süreci ile analizini gerçekleştirebilirsiniz.

Bir uygunluk modelini beş adımda oluşturabiliriz:

  1. Kriter verilerini belirleme ve hazırlama
  2. Uygunluk modeli oluşturma
  3. Her bir kriterin değerlerini ortak bir uygunluk ölçeğine dönüştürme
  4. Birbirine göre ağırlık kriterleri belirleme ve bunları birleştirerek bir uygunluk haritası oluşturma
  5. Uygun alanların seçilmesi

1. Kriter verilerini belirleme ve hazırlama

Uygunluk modeli oluşturmanın ilk adımı, modelin konusuna ilişkin kriterleri belirlemektir. Bazı temel veriler, model için doğrudan girdi kriteri olarak kullanılabilir. Diğer kriterler ise çeşitli Spatial Analyst coğrafi işlem araçları kullanılarak türetilebilir. Uygunluk modelleyici içinde veri türetemezsiniz. Ancak, uygunluk modelleyici ve geoprocessing araçları arasında geçiş yapabilirsiniz. Örneğin Slope aracı kullanılarak raster yükseklik verisinden eğim kriteri türetebilirsiniz.

2.Uygunluk modeli oluşturma ve kriter ekleme

Uygunluk Modelleyici (Suitability Modeler), ArcGIS Spatial Analyst eklenti lisansıyla birlikte sunulmakta ve ArcGIS Pro içerisinde Analysis sekmesinden erişilebilmektedir. Bu sekmede Uygunluk Modelleyici (Suitability Modeler) açıldığında Content kısmında bir uygunluk modeli grubu katmanı oluşacaktır. Bu katman modelde girdi ve çıktıları saklamak için kullanılmaktadır.

Suitability Modeler bölmesi içerisinde Settings, Suitability ve Locate sekmelerini içeren sekmeler bulunmaktadır. Settings sekmesinde modeli adlandırabilir, uygunluk ölçeğini seçebilir ve kriterlerin ağırlıklandırılması için kullanılacak yöntemi belirtebilirsiniz.

Kriterleri ağırlıklandırmak için Multiplier veya Percent olarak iki farklı yöntem bulunmaktadır.

Settings sekmesinde Weight kriteri için Multiplier yöntemini belirttiyseniz dönüştürülen kriter değerleri bu değer ile çarpılır. Çarpılan kriter değerleri daha sonra eklenir. Bu yöntemi, kriterleri birbirine göre doğrudan ağırlıklandırabildiğinizde kullanabilirsiniz.

Settings sekmesindeki Weight parametresinde Percent yöntemini belirlediyseniz, yüzdeler uygulandıktan ve ölçütler eklendikten sonra elde edilen uygunluk haritasındaki çıktı değerlerinin aralığı Settings sekmesindeki uygunluk ölçeğine doğrusal olarak dönüştürülür. Varsayılan olarak bu aralık 1 ila 10’dur. Bu yöntemi her bir kriterin ortaya çıkan uygunluk haritasını ne kadar etkilediğini belirtmek istediğinizde kullanabilirsiniz.

Modeli adlandırıp model ayarlarını belirledikten sonra uygunluk haritasını oluşturmak için Suitability sekmesine geçebilirsiniz. Suitability sekmesi kriterlerin eklendiği yerdir. Her bir kriter tabloya eklendiğinde, Content bölmesindeki uygunluk grubu katmanına da eklenir.

Suitability sekmesi ve beraberindeki Transformation Pane uygunluk iş akışının ilk dört adımını ele aldığınız yerdir. Locate sekmesi ise alanı tanımladığınız yerdir.

3.Her bir kriterin değerlerini ortak bir uygunluk ölçeğine dönüştürme

Bir kriteri ortak bir uygunluk ölçeğine dönüştürmek için Suitability sekmesindeki kriter listesindeki kriter düğmesine tıklayın. Bu düğmeye tıklandığınızda aşağıdakiler meydana gelmektedir:

  • Transformation Pane görünür.
  • Ölçütün dönüştürülmüş bir katmanı, Contents bölmesindeki uygunluk grubu katmanına eklenir.
  • Giriş değerlerinin türüne göre varsayılan bir dönüşüm uygulanır.

Kriterin yanındaki düğme yeşile döndüğünde Transformation Pane’nin etkin ölçüt olduğunu gösterir. Düğme, ölçüt dönüştürüldüğünde griye döner ve Transformation Pane artık etkin ölçüt olmaktan çıkar.

Transformation Pane paneli giriş ölçütü değerleri için en iyi dönüştürme yöntemini seçmek üzere kullanabileceğiniz üç ayrı bölümden oluşur. Son uygunluk değerlerinin bir histogramı solda yer almaktadır. Dönüşüm yöntemlerini ve işlevlerini seçmenize yardımcı olması için ise sağdaki grafiği kullanabilirsiniz.

Transformation Pane‘nin orta bölümünde ise dönüştürme yöntemleri yer almaktadır. Bu kapsamda ölçüt değerlerine uygulanabilecek üç dönüştürme yöntemi bulunmaktadır. Bunlar Unique Categories, Range of Classes ve Continuous Functions’tır.

Unique Categories: Arazi kullanım türleri gibi kategorik veriler için en iyisidir. Bu yöntem, ölçüt değerinin uygunluk değeri ile birebir eşleştirilmesidir.

Range of Classes: Değer aralıklarının aynı uygunluk tercihine atanabilen homojen sınıflar halinde gruplandırılabildiği sürekli veriler kullanılır.

Continuous Functions: Eğim, bakı veya uzaklık gibi sürekli değerlerle temsil edilen kriterler için en iyisidir. Bu yöntem, değerleri sürekli olarak uygunluk ölçeğine dönüştürmek için doğrusal ve doğrusal olmayan fonksiyonlar uygular. Kriter değerlerine sürekli bir fonksiyon uyguladığından, kriter değerindeki her artışla elde edilen uygunluk değeri sürekli değişir. Bundan dolayı bu yöntem sürekli veriler için en yaygın kullanılan dönüştürme yöntemidir.

Siz yöntemleri, işlevleri ve parametrelerini keşfettikçe, Content bölmesindeki uygunluk grubu katmanındaki dönüştürme grafiği, son uygunluk histogramı ve son uygunluk haritası katmanları güncellenir. Bu güncelleme, dönüşümün dönüştürülen kriter üzerindeki etkilerinin yanı sıra nihai uygunluk haritasına etkisi hakkında geri bildirim sağlar.

Kriter içerisinde en iyi değerleri yakalamak için dönüşümü belirledikten sonra bir sonraki kriteri dönüştürür ve tüm kriterler dönüştürülene kadar işlem tekrarlanır.

4.Birbirine göre ağırlık kriterleri belirleme ve bunları birleştirerek bir uygunluk haritası oluşturma

Bu kısımda kriterleri birbirine göre ağırlıklandırma işlemi yapılmaktadır. Ağırlıklar değiştirildiğinde, Transformation Pane içerisinde son uygunluk haritasının histogramı ve Content bölmesindeki uygunluk grubu katmanındaki son uygunluk haritası güncellenir. Konumdaki özniteliklere dayalı olarak her bir konumun göreli tercihini belirleyen, ekran çözünürlüğünde bir uygunluk haritası oluşturulmuş olur.

5.Uygun alanların seçilmesi

Locate sekmesinde, uygunluk modeli için mekansal gereksinimleri belirtebilirsiniz. Uygunluk modelleme sürecinin konum bileşeni, mekansal gereksinimlerin belirlenmesine olanak tanır. İstenilen alanların toplam alanı, bölge sayısı ve şekil özellikleri belirlenir. Ayrıca minimum ve maksimum bölge boyutlarını ve bölgeler arasındaki mesafeleri de belirleyebilirsiniz. Seçilmek istenilen alan için kriterler tanımlanıp araç çalıştırıldığında Content bölmesindeki uygunluk grubu katmanına, yerleştirilecek veya korunacak en iyi konumları tanımlayan yeni bir katman eklenmiş olur.

Uygunluk Modelleyici (Suitability Modeler) hakkında daha fazla bilgiye buradan ulaşabilirsiniz.