SRTM
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
- Öncelikle istenilen bölge için HGT formatındaki veriler internetten alınmalıdır. http://dds.cr.usgs.gov/srtm/version2_1/SRTM3/
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>