SRTM

From GMT Türkiye Wiki
Onur (Mesaj | Katkılar) tarafından oluşturulmuş 10:35, 19 Eylül 2010 tarihli sürüm

(fark) ← Önceki hali | en güncel halini göster (fark) | Sonraki hali → (fark)
Jump to: navigation, search

The Shuttle Radar Topography Mission (SRTM)

Yüksek çözünürlükte topoğrafya verisi toplamak için yapılmış bir projedir.

Çözünürlük:

  • ABD için 30 m
  • Tüm Dünya için 90 m (3 saniye)

Ayrıca bkz.

Konu başlıkları

Veri İndirme

  • USGS-SRTM sunucusundan 1'er derecelik dosyalar halinde indirilebilir. Dosyalar HGT formatındadır.

SRTM Verisinin GMT netCDF Formatına Çevrilmesi

web sayfasından ilgili bölge klasörüne girilir (alt klasörlerdeki dosya sayısı çok fazla olduğundan sayfanın açılması uzun sürecektir). Dosyalar sıkıştırılmış şekilde 1 derecelik dosyalar halindedir.

  • Dosyaları, çalıştığınız klasör içinde oluşturacağınız HGT adlı bir klasöre yerleştirin. Bu önemli, çevirme betiği (convert2.sh) bu klasör adına göre çalışır.
  • convert2.sh betiği verilen bir aralıkta HGT dosyalarını birleştirir. Ancak eksik bir HGT dosyası olursa birleştirme işi yapılamaz. Örneğin Karadeniz çevresinin HGT dosyalarını aldınız, ancak tamamen denizle kaplı kısımların HGT dosyası olmayacaktır. Veri olmayan parçaları sahte bir grd dosyası ile doldurmamız gerekir. Bunun için aşağıdaki iki komutu kullanın.
grdlandmask -R30/31/30/31 -I3c -Gtmp.grd
grdmath  tmp.grd 0 MUL = zero.grd
rm tmp.grd

Burada 1x1 derecelik alan icin 3 saniye (-I3c) örneklemeli bir grd dosyası oluşturulur. Sonrasında bu dosya içindeki tüm değerler sıfır ile çarpılır.

Elde ettiğiniz zero.grd dosyasını HGT klasörüne kopyalayın. Bu dosyayı bir kere yaratmanız yeterlidir.

NOT: zero.grd dosyasının sınırları önemli değildir (ancak 1 derecelik alan olmalıdır). Ekteki betik, boş hücre için zero.grd dosyasının sınırlarını değiştirerek kullanır.

  • Tüm HGT dosyalarınız hazır ve zero.grd dosyanızda HGT klasörü içinde ise ekteki betiği aşağıdaki örnekteki gibi çalıştırın
  bash convert2.sh   " 30 31 32 "  "40 41 42"

Burada enlem ve boylam değerlerini sırayla girmeniz gerekir ve tırnak işaretlerini unutmayın! Bu örnekte 30 31 ve 32 derece enlemler ve 40, 41 ve 42 derece boylamları içeren hücreler birleştirilir. Bu alanın sınırları GMT formatıyla -R40/43/30/33 şeklindedir.

  • Çıkış dosyası OUT.grd olacaktır.

convert2.sh

HGT dosyalarını çevirecek bash betiği. Aşağıdaki parçayı seçip kopyalayın ve convert2.sh adlı dosyaya yapıştırarak betik dosyasını oluşturun.

#!/bin/bash

#Convert 1x1 srtm data with 3'' resolution to gmt - NetCDF format
#paste the 1x1 tile together 
#this script works only if the tiles are arranged in a rectangle
#lat and lon have to be continuously
#copy the script into the directory of the downloaded files

# Usage:    convert2.sh   "lats" "lons"
#	    convert2.sh   " 30 31 32 "  "40 41 42"

grd="OUT.grd"    #final name of the grd-file
countb=1
ext=".hgt"        #file extension hgt or bil or whatever
HGT="HGT"

echo "Lat:" $1
echo "Lon:" $2

#-----------------Loop for latidude -------------#
for i in  $1   		#lat
   do
   counta=1
#-----------------Loop for longitude -------------#

   for j in   $2      #lon
      do

	# psudo data for unavalible cell,  Onur TAN
	 cp $HGT/zero.grd tile.grd;  grdedit tile.grd -R$j"/"$[$j+1]"/"$i"/"$[$i+1] 

      xyz2grd -V $HGT/N$i"E0"$j$ext -Gtile.grd -I3c  -R$j"/"$[$j+1]"/"$i"/"$[$i+1] -N-32768  -ZTLhw


      if [ "$counta" = "1" ]; then
         mv tile.grd $i$grd
      else
         out="-G$i$grd"
         grdpaste $i$grd tile.grd $out 
      fi
      counta=$[$counta+1]
   done

#-----------------End Loop longitude -------------#   
   if [ "$countb" = "1" ]; then
      mv $i$grd $grd
   else
      grdpaste $i$grd $grd -G$grd 
   fi
   countb=$[$countb+1]
done
#-----------------End Loop for latidude -------------#


#-----------------Clean up -------------#
mv $grd dummy
rm *.grd
mv dummy $grd

Örnek

Örnek ekran görüntüsü:

onur@quasar SRTMv2> convert2.sh " 41 42 43 " "29 30 31"
Lat: 41 42 43
Lon: 29 30 31
xyz2grd: Given domain implies x_inc = 0.000833333
xyz2grd: Given domain implies y_inc = 0.000833333
xyz2grd: nx = 1201  ny = 1201
xyz2grd: Working on file HGT/N41E029.hgt
xyz2grd: Given domain implies x_inc = 0.000833333
xyz2grd: Given domain implies y_inc = 0.000833333
xyz2grd: nx = 1201  ny = 1201
xyz2grd: Working on file HGT/N41E030.hgt
xyz2grd: Given domain implies x_inc = 0.000833333
xyz2grd: Given domain implies y_inc = 0.000833333
xyz2grd: nx = 1201  ny = 1201
xyz2grd: Working on file HGT/N41E031.hgt
xyz2grd: Given domain implies x_inc = 0.000833333
xyz2grd: Given domain implies y_inc = 0.000833333
xyz2grd: nx = 1201  ny = 1201
xyz2grd: Cannot open file HGT/N42E029.hgt
xyz2grd: Given domain implies x_inc = 0.000833333
xyz2grd: Given domain implies y_inc = 0.000833333
xyz2grd: nx = 1201  ny = 1201
xyz2grd: Cannot open file HGT/N42E030.hgt
xyz2grd: Given domain implies x_inc = 0.000833333
xyz2grd: Given domain implies y_inc = 0.000833333
xyz2grd: nx = 1201  ny = 1201
xyz2grd: Cannot open file HGT/N42E031.hgt
xyz2grd: Given domain implies x_inc = 0.000833333
xyz2grd: Given domain implies y_inc = 0.000833333
xyz2grd: nx = 1201  ny = 1201
xyz2grd: Cannot open file HGT/N43E029.hgt
xyz2grd: Given domain implies x_inc = 0.000833333
xyz2grd: Given domain implies y_inc = 0.000833333
xyz2grd: nx = 1201  ny = 1201
xyz2grd: Cannot open file HGT/N43E030.hgt
xyz2grd: Given domain implies x_inc = 0.000833333
xyz2grd: Given domain implies y_inc = 0.000833333
xyz2grd: nx = 1201  ny = 1201
xyz2grd: Cannot open file HGT/N43E031.hgt
onur@quasar SRTMv2> grdinfo OUT.grd
OUT.grd: Title: OUT.grd
OUT.grd: Command: grdpaste 43OUT.grd OUT.grd -GOUT.grd
OUT.grd: Remark: 
OUT.grd: Gridline node registration used
OUT.grd: Grid file format: nf (# 18)
OUT.grd: x_min: 29 x_max: 32 x_inc: 0.000833333 name: x nx: 3601
OUT.grd: y_min: 41 y_max: 44 y_inc: 0.000833333 name: y ny: 3601
OUT.grd: z_min: -22 z_max: 1630 name: z
OUT.grd: scale_factor: 1 add_offset: 0
onur@quasar SRTMv2> 


Dış Bağlantılar

Personal tools