Hedef kitlemize ulaşırken yaptığımız haritaların güzelliği ve anlattıkları ne kadar önemliyse, bu haritaları hızlı bir şekilde sunmak da bir o kadar önemli. Haritamızla anlatmak istediklerimizin çokluğu bazen hızdan feragat etmemize sebep olabiliyor ama içinde bulunduğumuz çağda hız, kullanıcı tarafında haritalarımızın tüketiminde çok önemli rol oynuyor. Bunu eğitimlerimizde katılımcılarımızdan gelen sorulardan da anlayabiliyoruz. Esri Türkiye bünyesinde yaptığımız eğitimlerde gelen sorulardan biri genellikle “Haritalarımızı nasıl hızlandırırız?” oluyor. Bu blog yazımızda kendi bilgisayarınızda yalnızca kendi kullanımınız için bir harita hazırlayacak olsanız da harita servisi olarak geniş kullanıcı topluluklarıyla paylaşacak olsanız da haritalarınızın performansını arttırabilecek püf noktalarına değineceğiz.
Haritalarınızı ister web’de paylaşın ister ArcGIS Desktop yazılımlarından birinde kullanın, görüntüleme işlemlerini hızlandırmak ve performansı arttırmak için uygulayabileceğiniz birçok teknik vardır. Daha hızlı görüntülenen bir harita, ArcGIS Desktop ortamında yapacağınız analizler için daha iyi bir kaynak oluştururken, ArcGIS Server üzerinden paylaştığınızda ise kullanıcılara daha iyi bir görüntüleme ve analiz deneyimi yaşatacaktır.
Performansı iyileştirmenin birçok yöntemi vardır ama bu yöntemlerin hepsi tek bir temel stratejiyi baz alır: bilgisayarınız çizimleri ekrana getirdiği sırada ne kadar az işlem kararı alırsa o kadar hızlı bir çizim yapar. Çoğu durumda sembolojide, data frame’de (veri çerçevesinde) veya harita katmanlarda yapacağınız birkaç küçük değişiklikle haritalarınızın görüntüleme hızının artmasında büyük fayda sağlayabilirsiniz.
Performans İçin Haritadaki Öğeleri Optimize Etme
Veri ayarlarınızı ve veriyi kullanma şeklinizi ArcGIS Desktop’ta performansı iyileştirmek için optimize edebilirsiniz. Veri kaynağının formatı da dahil olmak üzere birçok faktörün haritanızın hızında rolü vardır. Verinin konumu, katmanlar, veri çerçevesi ve harita çıktısındaki detayların ayarlarını değiştirerek çok büyük hız artışı sağlayabilirsiniz.
Verinizi hazırlamak
Veri formatını seçerken kullanıcı ihtiyacı, verinin kullanım amacı, boyutu, yapılacak analiz türleri veri bakım gereksinimleri gibi birçok faktör belirleyici olur. Bir haritanın en iyi performansta çalışması için verilerin uzaktaki bir makinede saklanması yerine, görüntüleyeceğiniz bilgisayarda bulunması hızı arttıracaktır.
Bununla birlikte çok büyük veri kümelerinden veri çekerek küçük alanların gösterimini yapacak haritalar için, verinin ArcSDE’den servis edilmesi, aynı veriyi dosyalara kaydetmeye kıyasla önemli performans avantajları sağlayacaktır.
Eğer haritanızı paylaşacaksanız ya da çoklu kullanıcı erişimine açacaksanız verinizi Personal Geodatabase’lerde (Kişisel coğrafi veri tabanlarında) saklamak doğru olmayacaktır. Personal Geodatabase’ler bunun için tasarlanmamışlardır.
Veriyi hazırlarken dikkat edilmesi gereken birkaç ek husus:
- Bütün projeksiyonları aynı yapmak: Data Frame’iniz ve altına eklediğiniz her katmanı mümkün olan her durumda aynı projeksiyon sistemine çevirmeniz veri düzenlerken ve paylaşıma hazırlarken çok önemlidir. Bütün katmanlar aynı projeksiyonda olduğu zaman sürekli olan on-the-fly projeksiyon hesaplamasına ihtiyaç kalmayacaktır. Bu durum ciddi bir performans artışına sebep olur.
- Join ve Relate’le çalışmak: Verinize Join ya da Relate’le eklediğiniz sütunlarla semboloji, etiketleme, sorgu ve daha birçok işlem yapabilirsiniz. Ancak Join ve Relate’le veri eklemek performansınızı yavaşlatabilir. Bu yavaşlamadan kaçınmak için püf noktalarına buradan ulaşabilirsiniz.
- Öznitelik ya da Mekânsal indeksleri kullanmak: Eğer veri kaynağınız izin veriyorsa sorgulamada ya da gösterimde kullandığınız sütunlarınızı indeksleyin. İndeksler her veri formatı için farklıdır. Shapefile’lar için buradan ve Geodatabase’ler (Coğrafi Veri Tabanları) için de buradan daha fazla bilgiye sahip olabilirsiniz. Bunlara ek olarak Geoprocessing çatısı verinizdeki öznitelikleri indekslemeniz için bir araca sahiptir, bu araç hakkındaki bilgiye de bu bağlantıdan ulaşabilirsiniz: Add_Attribute_Index.
- Veriyi Basitleştirmek: Verinizin basitleştirilmiş ya da genelleştirilmiş versiyonlarını kullanmak da ciddi performans artışına sebep olur. Eğer küçük ölçekte gösterim yapacaksanız verinizin genelleştirilmiş veya basitleştirilmiş bir sürümüyle çalışırsanız zaten görünmeyecek olan detaylar için yazılımın hesaplama yapmasına gerek kalmayacaktır. Örneğin, Dünya kıyı şeritlerinin çok detaylı bir haritası tam ölçekte gösterildiğinde yavaş çalışacaktır, verteksleri azaltarak verinizi sadeleştirirseniz, sorgu ve tanılama yeteneklerinin performansının arttığını göreceksiniz.
Katmanları, Rasterları ve Çıktı Düzenlerini Optimize Etmek
Aslında performans artışı ve hız için yapabileceğiniz en kolay ve hızlı yöntem, gereksiz katmanları ve veri çerçevelerini (Data Frame) haritanızdan kaldırmaktır. Haritanın amacına hizmet etmeyen veri çerçevelerini ve katmanları kaldırmak, çıktı düzeninizdeki gereksiz harita öğelerini kaldırmak ciddi bir performans artışı sağlayabilir.
Bütün bunları yaptıktan sonra daha ileri bir performans artışı isterseniz aşağıdaki ek hususlara da bakabilirsiniz.
- Belirli katman ve detayları otomatik olarak gizleyerek performansı artırmak: Katman gösteriminde performansı arttırmanın en iyi iki yoldan biri detayları sadece göstermenin uygun olduğu ölçek aralığında göstermektir ve diğeri ise özniteliklerden tanım sorgusu oluşturarak her detayın gösterilmesinden kaçınmaktır.
- Eğer belirli bir ölçekte haritanızdaki bir katmanın görünmesine ihtiyacınız yoksa, o katman için ölçek bağımlılığını açarak, sadece belirlediğiniz ölçek değerlerinde görüntülenmesini sağlayabilir bu sayede performansı arttırabilirsiniz. Bu konuda bilgiye buradan ulaşabilirsiniz,
- Tanım sorgusu yaparak haritanızdaki verinin miktarını kısıtlayabilirsiniz. Bir sorgu oluşturarak sadece dikkat çekmek ve gösterimini yapmak istediğiniz verilerin gösterilmesini sağlayabilirsiniz. Nasıl yapıldığını öğrenmek için buraya bakabilirsiniz,
- Semboloji ve performans ilişkisi hakkında bilgi için buraya bakabilirsiniz,
- Gösterim performansını optimize etmek için altlık haritaları kullanmak hakkında buradan bilgi alabilirsiniz,
- Haritanızdaki verileri bilgisayarınız önbelleğine kaydedilmesini sağlamak: ArcMap detay önbelleklemesi haritadaki detayları geçici olarak bilgisayarınızın belleğine alarak veriye daha hızlı ulaşılmasını sağlar. Bu işlemin etiketleme, düzenleme, detay seçimi, birden çok katmanda kullanılan aynı detayın daha hızlı çağrılması gibi birçok işleme faydası vardır. Bu konuda daha fazla bilgi için buradan faydalanabilirsiniz,
- Rasterları hızlandırmak için ise birden çok teknik kullanabilirsiniz. Görüntü kalitesini mümkün olduğunca düşük tutmak, doğru yeniden örnekleme yöntemini kullanmak ve raster’ı on-the-fly projeksiyon yerine kendi projeksiyonunda göstermek gibi yöntemleri kullanabilirsiniz. Bunların yanında piramitleme’de etkin bir performans arttırıcı yöntemdir. Raster’ları hızlandırmanın çeşitli yöntemlerini buradan inceleyebilirsiniz,
- Çıktı düzenini ayarlarken veri çerçevelerinizin kenarlarını yuvarlak hatlı olması, arkaplan renklendirmeniz, çerçevelere gölge vermeniz gibi görselleştirme özellikleri performansı yavaşlatacaktır. Bu özellikleri veri çerçevesine sağ tıklayarak Properties (Özellikler), Frame (Çerçeve) yolundan ayarlayabilirsiniz.
ArcGIS Server ile Servis Edilecek Haritaları Optimize Etmek
Yukarıdaki haritaları optimize etme yöntemleri ArcGIS Server’la servis edilecek haritalarda da işe yarar. Bu yöntemlere ek olarak bu bağlantı altındaki yöntemlerden de yararlanabilirsiniz. Haritayı servis etmeden önce hedef kitleye göre tasarlayarak, gerekmeyen hiçbir öğeyi ve katmanı eklemeyerek baştan performans düşüşlerinin önüne geçebilirsiniz. Amaçlanan uygulama için gerekmeyen her veri çerçevesini kaldırıp, varsayılan olarak sadece birkaç katmanın gösterilmesini sağlayarak hızı arttırabilirsiniz. Kullanıcılar ihtiyaçları olan katmanları kendileri açıp kapatarak performansı kendileri belirleyebilir.
Önbelleklenmiş harita servisi kullanmak her zaman harita servisi sunmanın en hızlı yoludur. Çünkü harita önbelleği oluşturulduğunda görüntüleme de oluşturulur. Ama bu yöntem pek de dinamik değildir ve sürekli veri değişikliklerine uygun bir yöntem değildir. Önbelleklenmiş harita servisi kullanmak işinize uygun olmadığı zamanlarda bu blog yazısındaki diğer yöntemler performans artışı için çok işinize yarayacaktır.
Performansı haritalar oluşturmak için burada değindiğimiz ve daha birçok yöntem için ArcGIS 1 & 2 CBS’ye Giriş & Temel Uygulamalar eğitimimize katılabilirsiniz.
Esri Türkiye 2019