Eylül 2009
Hedef
Bu eğitim, açık kaynaklı Geospatial Data Abstraction Library yardımcı programlarını kullanan bölge tabanlı Ağ Bağlantılarının yer aldığı bir yer paylaşımlı yer paylaşımı grubu oluşturmayla ilgili temel bilgileri adım adım gösterir.
Giriş
Google Earth ve Google Haritalar gibi coğrafi tarayıcılar, uydu görüntülerini ve harita bloklarını size sunar. Ancak bazen kendi segmentlerinizi kullanmak isteyebilirsiniz. Görüntüler veya kafes verileri çeşitli şekillerde sunulur ve birçok amaçla kullanılır.
- Bir coğrafi tarayıcıya kendi uydu veya havadan görüntülerinizi yerleştirme
- Google Haritalar'daki Rumsey Maps katmanı gibi mevcut görüntülerin üzerine geçmiş haritalar yerleştirme
- GIS verilerini kafes formunda içe aktarma
- Coğrafi tarayıcıya LIDAR veya kızılötesi görüntü yerleştirme
Bununla birlikte, yüksek çözünürlüklü kafes verileriyle ilgili sorunlardan biri, verilerin görüntülenmesi için çok fazla bellek bulunmasıdır. Uygulamayı internete aktarırken bant genişliğiyle ilgili endişeleriniz de vardır. Bu sorunu çözmek için kartlar oluşturmanız gerekir.
Döşeme işlemi, resim dosyanızı, çok sayıda resim gösterilir ve bu dosyalar görüntülendiklerinde yüklenir. Kullanıcı uzaklaştırılırken görüntü için düşük çözünürlüklü bir resim oluşturursunuz. Aynı alanda, daha yakından bakmak için dört adet daha yüksek çözünürlüklü resim oluşturursunuz. Bir resmin içine yerleştirilen her bir alan için, yakınlaştırmak amacıyla vb. daha yüksek çözünürlüklü dört resim daha oluşturursunuz. Bu, quadtree yöntemi olarak bilinir ve Google Earth ile Google Haritalar'da görüntülerin nasıl parçalara ayrıldığını gösterir. Süreç, Bölgeler ile ilgili KML Geliştirici Kılavuzu makalesinde daha ayrıntılı olarak açıklanmıştır.
Bu işlemi Adobe'un PhotoShop veya GIMP gibi grafik düzenleme uygulamalarıyla manuel olarak yapmak mümkündür, ancak bu karmaşık, yorucu ve hataya açıktır. Ayrıca, başta Windows için CrunchUp2KML ile birlikte kullanılan SuperOverlay, Arc2Earth ve MapCruncher gibi birçok iyi uygulama da vardır.
İşlemi otomatikleştirmek veya kendi uygulamanıza işlevler eklemek istiyorsanız GDAL, kafes ve vektör verileriyle çalışmak için zengin bir araç grubu sağlar. Bu makalede, komut satırı seçenekleri ele alınmaktadır. Ancak kitaplıklar da kendi uygulamalarınıza kolayca dahil edilebilir. Bu eğiticide gdalinfo
, gdal_translate
, gdalwarp
ve gdal2tiles
yardımcı programlarını kullanacaksınız. Nihai sonuç, yer paylaşımlı bir görüntüdür.
Komut Satırı Adımları
Komut satırında GDAL'i kullanmanın altı adımı vardır.
- GDAL'ı indirme ve yükleme
- Resim indirme
- Resimle ilgili bilgileri belirlemek için
gdalinfo
özelliğini kullanın - Resmi coğrafi olarak referans göstermek için
gdal_translate
kullanın - Görselin projeksiyonunu değiştirmek için
gdalwarp
kullanın - Resmi parçalara ayırmak ve ilişkili KML kodunu oluşturmak için
gdal2tiles
kullanın
1. Adım: GDAL'i indirin ve yükleyin
Burada ayrıntılı olarak açıklandığı şekilde GDAL'yi indirip yükleyerek başlayın.
2. Adım: Bir resim indirin
Herhangi bir resmi kullanabilirsiniz. Web'de çeşitli coğrafi veri kaynakları bulunur. Bunlardan herhangi birini kullanabilirsiniz ancak resmin sınırlarını bilmeniz gerekir. Bu bilgiler, resmin her köşesinin enlemi ve boylamını içerir. Bu eğitim, NASA'nın web sitesinden indirilebilen NASA Blue Marble görseli kullanır. Bu görüntüler 2004'te çekilmiş ve uzaydan Dünya'nın güzel bir resmini göstermektedir. Sağ gezinme çubuğunun sağ alt kısmındaki dosyalardan birini seçin.
Kendi resminizi kullanıyorsanız ve resmin coğrafi olarak yeniden düzeltildiğini biliyorsanız 5. Adım'a geçebilirsiniz. Aksi takdirde 3. Adım'a geçin.
3. Adım: Resim hakkında bilgi edinin
GDAL kitaplıklarını yükleyip resmi seçtikten sonra, coğrafi referans verebilmeniz için resimle ilgili bazı bilgileri almanız gerekir. Özellikle, resmin her bir köşesinin piksel ve satır konumlarının belirtilmesi gerekir. Resmi, sütunlar ve satırlar içeren bir tablo olarak hayal ederseniz pikseller sütunlar, satırlar ise satırdır.
GDAL, bu bilgilerin yakalanması için kullanışlı bir yardımcı program (gdalinfo
) sağlamaktadır. Komut satırına gdalinfo filename
yazıp dosya yolunu filename
ile değiştirmeniz yeterlidir. Çıkış şöyle görünmelidir:
Driver: JPEG/JPEG JFIF Files: world_200401.jpg Size is 21600, 10800 Coordinate System is `' Image Structure Metadata: SOURCE_COLOR_SPACE=YCbCr INTERLEAVE=PIXEL COMPRESSION=JPEG Corner Coordinates: Upper Left ( 0.0, 0.0) Lower Left ( 0.0,10800.0) Upper Right (21600.0, 0.0) Lower Right (21600.0,10800.0) Center (10800.0, 5400.0) Band 1 Block=21600x1 Type=Byte, ColorInterp=Red Image Structure Metadata: COMPRESSION=JPEG Band 2 Block=21600x1 Type=Byte, ColorInterp=Green Image Structure Metadata: COMPRESSION=JPEG Band 3 Block=21600x1 Type=Byte, ColorInterp=Blue Image Structure Metadata: COMPRESSION=JPEG
Bu eğitimle ilgili önemli bilgiler sol üst, sol alt, sağ üst, sağ alt çizgilerdir. Bunlar, her bir köşenin piksel ve satır değerlerini belirtir. Bu örnekte, sol üst üstte 0,0, sağ altta 21600.10800 olarak belirlenmiştir.
4. Adım: Resmin coğrafi referansı
Bu durumda coğrafi başvuru, resmin her köşesinin coğrafi konumunu açıklayan meta veriler oluşturmak anlamına gelir. 3. ve gdal_translate
. adımlarda kazandığınız bilgileri kullanarak dosyaya coğrafi referans bilgisi atayabilirsiniz. Bu, bluemarble1.vrt
world_200401.jpg
görüntüsünden bir VRT dosyası oluşturur. VRT dosyaları, belirli bir dönüşümle (bu örnekte gdal_translate
adımı) ilgili bilgileri içeren XML dosyalarıdır. Son karo grubunuzu oluşturmak için bir sonraki adımda tekrar kullanırsınız. gdal_translate
, başlıca resim dosyası biçimleri dahil olmak üzere birden çok dosya çıkışı türü yapmanıza olanak tanır. VRT çıkışlarını kullanarak son adıma kadar çıkış dosyaları oluşturmayı devre dışı bırakabilirsiniz. Bu, komut satırını yapıyorsanız her bir adım için verimliliği artırır ve bekleme sürenizi azaltır. Çalıştıracağınız komut şu şekildedir:
gdal_translate -of VRT -a_srs EPSG:4326 -gcp 0 0 -180 90 -gcp 21600 0 180 90 -gcp 21600 10800 180 -90 world_200401.jpg bluemarble1.vrt
Bu satırda çok fazla bilgi olduğu için özet şu şekildedir:
- Çıkış biçimi
-of
(bu örnekte VRT). -a_srs
, dosyaya uzamsal bir referans sistemi atar. Bu, hangi koordinat sistemini kullanan tüm uygulamaları belirtir. Bu durumda, Google Earth'ün kullandığı koordinat sistemi WGS84 ile aynı olan EPSG:4326'yı kullanır.-gcp
veya zemin kontrol noktası, koordinatları dosyadaki konumlara atar. Bu durumda, resim bir dikdörtgen olduğundan ve dördüncü nokta kolayca ayırt edilebildiğinden aslında yalnızca üç noktaya ihtiyacınız olur.-gcp
için, piksel ve daha sonra, çizgi numarasını, boylamı ve enlemi ayarlayarak gcp'yi tanımlayın. Bunların her biri boşlukla ayrılır.- Son iki parametre, kaynak dosya ve hedef dosyadır.
5. Adım: Görüntüyü Eğin
Orijinal resim yuvarlak bir dünya için değil, düz bir yerde görünecek şekilde oluşturuldu. Coğrafi Bilgi Sistemi şartlarında, tahmin edilir. Yani üç boyutlu bir nesnenin iki boyutlu bir temsilidir. Projeksiyon, resmin düz bir şekilde görünmesini bekleyecek şekilde resmin bozulmasını gerektirir.
Görüntünün doğru görünmesi için yerküreye sığması için resmi eğmeniz gerekir. Neyse ki GDAL bunun için de harika bir araç sağlıyor. gdalwarp -of VRT -t_srs EPSG:4326 bluemarble1.vrt bluemarble2.vrt
yazmanız yeterlidir. Bu işlem, hazırlama işlemiyle ilgili meta verileri sağlayan yeni bir dosya (bluemarble2.vrt) oluşturur.
6. Adım: Kart oluşturma
Neredeyse bitti, ancak bu bölüm daha uzun sürecek. Blok oluşturmak için gdal2tiles.py -p geodetic -k bluemarble2.vrt
yazın. -k
, bir KML çıkışını zorunlu kılar. Bu, yer paylaşımı içeren bir dizin yapısı oluşturur. Bu resim dosyalarının her birinin ayrı ayrı oluşturulması gerektiğinden bu dosyaların çalıştırılması biraz zaman alır. Büyük resimler için artık bir fincan kahve veya şekerleme alabilir, hafif bir yemek deneyebilirsiniz. Bu işlemi tamamladığınızda doc.kml
uygulamasını açıp sonuçları inceleyin.
Sonuç
Bu eğitim yalnızca GDAL'ın neler yapabildiğini gösterir ancak karo oluşturmak için kullanışlı bir mekanizma sunar. Temel GDAL kitaplıkları C++ ile yazılır. Ancak Perl, Python, VB6, R, Wild, Java ve C#/.NET için bağlayıcılar sunar. Bu sayede GDAL'yi kendi uygulamalarınıza kolayca ekleyebilirsiniz. Ayrıca, gdal2tiles
dahil olmak üzere pek çok yardımcı program Python'da yazılır ve bu da Python uygulamalarına dahil edilmesini kolaylaştırır. gdal2tiles
ayrıca Google Maps API ve OpenLayers sayfaları da oluşturabilir.