Arsip Tag: NASA

Download NASA/NOAA Suomi-National Polar Orbiting Partnership (S-NPP) Satellite – Visible Infrared Imaging Radiometer Suite (VIIRS) Corrected Reflectance (True Color)

GIBS Nasa memberikan layanan percuma untuk mengunduh hampir-seketika (near-realtime) data hasil koreksi reflektan dari instrumen VIIRS dari satelit Suomi. Data yang puluhan Giga disarikan menjadi layanan ubin pada WorldView-nya EarthData -nya NASA.

Nah, karena sudah berbentuk layanan ubin, kita bisa unduh otomatis, dan kalau Anda memiliki WGET.EXE dan juga sudah menginstal ImageMagick, Anda dapat menggunakan script batch file saya ini untuk mendownload eh meng-unduh (bahasa Indonesia yang baku untuk download adalah unduh) semua ubin, lalu di-montage (saya tidak tahu padanan kata montage dalam Bahasa Indonesia)

POC (Proof of Concept)

Sila lihat skrip saya di sini:

https://drive.google.com/drive/folders/14iNuMAgYXbtb4q99HIRpgnNv0H4CK-Wa?usp=sharing

Pastikan Anda Memiliki WGET.exe

karena batch file saya mendownload ubin menggunakan perintah wget

Pastikan Anda memiliki ImageMagick

karena batch file saya dalam menggabungkan ubin menjadi citra penuh menggunakan perintah montage dari ImageMagick

Cara Penggunaan

buat sebuah folder dengan format yyyy-mm-dd, misalnya 2019-12-01, lalu pindahkan file *.cmd dan *.txt ke folder tersebut.

Empat buah file wget*.cmd adalah mendownload secara paralel secara terpisah dari masing-masing subdomain GIBS, jadi biar lebih cepat saja downloadnya.

Eksekusi wget3_0.cmd, lebih baik pakai tombol keyboard enter daripada double click, karena nanti bisa kegeser. Lalu pilih wget3_a.cmd lalu enter lagi. Pilih wget3_b.cmd lalu enter lagi. Terakhir pilih wget3_c.cmd lalu tekan tombol enter juga di keyboard.

Jika semua ubin telah terdownload, dengan ditandai anda telah memiliki 50 buah ubin dengan format matriks-colom-baris.jpg,

Baru eksekusi (pilih, lalu enter) file domontage3.cmd

Hasil

Anda akan otomatis membuat file berformat m3_yyyy-mm-dd.jpg, yang merupakan hasil penggabungan 50 buah ubin tadi. Ukuran citra akhir seharusnya 5120 x 2560 pixels.

Penjelasan Sedikit tentang Matrix Set 3

Zoom atau Matrix set 3, sudah berukuran 5120 x 2560 pixels, jadi sudah sangat jelas kalau hanya untuk bahan ajar. Untuk penelitian, mungkin Anda harus download hingga Matrix 7. Tapi ingat, setiap penambahan level matriks, ukuran menjadi 4 kali lipat lebih banyak. m4 adalah 10240 x 5120 pixels. m5 adalah 20512 x 10240 pixels, begitu seterusnya …

Banyak unduhan ubin juga berkali 4 tiap penambahan level matrix. Matrix 4 berukuran 5 baris 10 kolom, yaitu 50 ubin.

Matrix 5 akan berukuran 10 baris 20 kolom, yaitu 200 ubin.

Matrix 6 akan berukuran 20 baris dan 40 kolom, yaitu 800 ubin.

Matrix 7 akan berukuan 40 baris dan 80 kolom, yaitu 3200 ubin.

Masing-masing ubin berukuran 512×512 pixels.

Dan ingat, walaupun satelit ini melintasi bumi berkali-kali, namun ada beberapa daerah terutama semakin dekat ke khatulistiwa yang tidak tercitrakan, karena lebar swath satelit tidak cukup berhimpitan, dan sepertinya diisi otomatis oleh algoritma NASA, dan tentu kita tertolong dengan ini … Tapi algoritma tersebut belum 100% seprulna, sehingga masih kelihatan sedikit blur.

Ada lagi sedikit, tentang gambar yang tidak smooth tersambung, karena sebenarnya itu adalah hasil blending dari waktu yang tidak sama. Terlihat awan terpotong atau bahkan cahaya nya berbeda.

Nah, satu lagi yang sedikit mengganggu adalah bagian kutub tertentu yang tidak terpetakan, karena memang menjauhi matahari dan seperti kebanyakan satelit, orbitnya sinkron dengan matahari. Bagian bumi yang menjauhi matahari jadi susah untuk dilihat…

Going Deeper …

Jika Anda sukses mengikuti semua hingga sini, WOW, Anda sudah jago dalam mengunduh citra satelit dari WorldView nya NASA.

Congratulate Yourself, Mate! ngga banyak orang yang sudah sampai ke sini …

Sedikit permasalahan adalah kalau Anda ingin mengolah lagi gambar tersebut di QGIS. Anda butuh World File, yaitu file berekstensi WLD ataupun JGW ataupun PGW jika file Anda berakhiran JPG atau PNG respektifli.

Cara cepat adalah tinggal download saja file WLD nya dari Google Drive saya, karena EXTENTS dan WIDTH dan HEIGHT gambar sama, makanya WLD nya juga akan pasti sama.

Biar Anda tidak ditanya mulu CRS nya apa (kode EPSG nya) oleh QGIS, makanya kita perlu juga buatkan berkas AUX. Berkas tersebut berisi kode Coordinate Reference Systems. Terkadang, karena NASA sudah menggunakan WGS 84 (EPSG:4326), otomatis default EPSG adalah ini.

Evolusi Bumi

Nah, ada yang menarik dari citra hasil satelit Suomi ini, karena jatuhnya yang mengelilingi bumi, posisinya sedikit bergeser dari hari-ke-hari. Untuk melihat lebih kontras, saya demokan di GoogleDrive setiap 3 bulan. Sila lihat hasil unduh bulan 3, bulan 6, bulan 9 dan bulan 12.

Terdapat ada wilayah bumi yang tidak terpetakan oleh satelit.

Desember (desi=10, ember=bulan), Matahari di Selatan

Pada bulan September ke puncaknya bulan Desember, hingga Maret nantinya, maka kutub Utara akan tidak terpetakan, karena utara bumi menjauhi matahari pada fase itu. Bagian kutub utara bumi akan tidak akan mendapati siang hari, akan terus malam hari selama beberapa hari.

Di beberapa tempat di bagian utara bumi akan lebih lama malam daripada siangnya. Jika Anda muslim, dan dapat waktu Ramadhan saat bulan Desember, maka Anda akan sahur, imsak, lalu sholat subuh, lalu sholat zuhur, lalu sholat ashar lalu berbuka dan sholat Maghrib, serasa sholat subuh 2 + 4 + 4 + 3 rakaat … Sholat Jum’at nya ngga boleh lama khutbah, takutnya sudah Ashar bahkan Maghrib …

Bumi akan berada pada posisi “tegak lurus” pada Maret dan September. Pada saat itu, terjadi “equinox”, yaitu di mana semua tempat di bumi sama panjang siang dan malamnya.

Juni, Matahari di Utara

Pada bulan Juni, matahari akan berada di bagian utara bumi, sehingga kutub Utara akan siang selama beberapa hari tanpa malam. Di tempat lain sekitarnya akan lebih lama siang daripada malam.

Sebenarnya, bagian utara bumi mendekati matahari, dengan teleng 23,5 derjat. Begitupun dengan bagian selatan bumi yang menjauhi matahari.

Akibatnya, bagian selatan juga tidak terpetakan oleh Saomi …

JavaScript untuk membuat WLD dan AUX.XML file NASA GIBS

GIBS NASA menggunakan EPSG:4326, yang sedikit berbeda dengan Pseudo Mercator / EPSG:3857 atau yang lebih dikenal dengan Google Map. Zoom pada GIBS pun dinamakan Matrixset m, jadi bukan z.

Ukuran gambar dibuat dengan perbandingan 2:1, untuk lebar dua kali lipat tinggi.

Ukuran tile pun 512×512 pixels, tidak seperti kebanyakan tile server lain yang 256×256 pixels.

Gambar baru “benar-benar” full saat m = 3, dimana terdapat 5 baris dan 10 kolom

Leaflet JS membuat Polygon untuk Matrik 3

Untuk membuat polygon batas masing-masing tile tersebut, kita gunakan saja Leaflet, karena dukungan GIS nya memang sangat mumpuni. Berikut petikan awal snippet JavaScript saya:

// fungsi untuk membuat polygon berdasarkan nomor row dan col
// untuk matrik 3
// matrik 3 adalah 10 col dan 5 row
function m3(row,col){
  //ingat L.polygon adalah latlong
  return new L.polygon(
    [
      [ 90-36*row , -180 + 36*col],
      [ 90-36*row , -180 + 36*(col+1)],
      [ 90-36*(row+1) , -180 + 36*(col+1)],
      [ 90-36*(row+1) , -180 + 36*(col)]
    ]
  );
}

Fungsi di atas untuk membuat sebuah polygon di Leflet, untuk spesifik nomor baris dan kolom tertentu.

Perhatikan bahwa Leaflet menggunakan LatLng, latitude dulu baru , baru longitude!

Untuk zoom level 3, kita tahu ada 10 kolom gambar untuk 360 derjat longitude. Dari sini, kita bisa tahu bahwa lebar sebuah ubin adalah 36 derjat.

Untuk zoom level 3, kita tahu ada 5 baris gambar yang menutupi bumi 90 derjat utara dan 90 derjat selatan, total 180 derjat latitude bumi.

180 dibagi 5 adalah …. 36 derjat juga …

Extents (batas) gambar dari NASA adalah seluruh bumi, dari -180 sampai 180 untuk longitude, dan dari 90 utara hingga minus 90 untuk selatan…

Longitude bertambah terus 36 derjat setiap kolom ubinnya, dari -180 (ujung barat bumi) hingga 180 (timur).

Latitude berkurang terus 36 derjat untuk penambahan baris ubin, mulai positif 90 di kutub utara, hingga minus 90 untuk kutub selatan.

Sekarang Anda tahu darimana datang angka-angka koordinat polygon nya!

LeafletJS Download GeoJSON untuk semua Matrik 3

Silahkan pelajari petikan kode berikut:

function downloadm3(){
	// Create an empty GeoJSON collection
	var collection = {
		"type": "FeatureCollection",
		"features": []
	};
	
	//sekarang loop tiap row dan col
  // m3 ada 5  baris 10 kolom
  var row=5,col=10;
	for(r=0;r<row;r++){
		for(c=0;c<col;c++){
			g = m3(r,c).toGeoJSON();//dari leaflet polygon langsung ke GeoJSON saja
      //nah, berhubung properties nya masih kosong, kita tambahin saja
      g.properties={m:3,r:r,c:c};
			collection.features.push(g);
		}
	}
	
	saveAs(new Blob([JSON.stringify(collection)], {type: "text/plain;charset=utf-8"}),'m3.geojson')
	
}  

Nah, jika fungsi tersebut dipanggil, Anda akan disuruh unduh eh download sebuah file bernama m3.geojson, yaitu geojson untuk semua batas ubin GIBS nasa untuk matriks 3.

Untuk sukses menjalankannya, Anda butuh FileSaver.min.js

Logika dibelakang kode ini adalah seperti berikut:

Kita buatkan dulu sebuah koleksi untuk menampung fitur kita. Ini merupakan aturan pembuatan FeatureCollection pada GeoJSON.

Lalu, kita push masing-masing ubin kita ke koleksi tadi.

Untuk lebih memudahkan kita identifikasi nomor baris dan kolom, kita tambahkan tabel atribut untuk GeoJSON kita. Pada GeoJSON, tabel atribut namanya adalah PROPERTIES!

Untuk memudahkan mendownload file GeoJSON, saya gunakan FileSaver JS, sehingga dengan fungsi saveAs nya kita bisa langsung bisa simpan berkas dari memori javascript kita.

Lanjut …

Setelah sukses untuk GeoJSON zoom level 3, kita coba untuk membuat zoom level berikutnya.

//m3 adalah 10x5, col nya adalah 360 / 10, masing masing 36 derjat
//m4 adalah 20x10, col nya adalah 360/ 20, masing-masing 18 derjat
//m5 adalah 40x20, col nya adalah 360/ 40, masing-masing berarti 9 deg
// m6  80x40     360/80 = 9/2 deg = 4.5 deg
// 7  160    36/16   36/2^4
function mx(m,row,col){
  //ingat L.polygon adalah latlong
  var deg = 36/2**(m-3);
  return new L.polygon(
    [
      [ 90-deg*row , -180 + deg*col],
      [ 90-deg*row , -180 + deg*(col+1)],
      [ 90-deg*(row+1) , -180 + deg*(col+1)],
      [ 90-deg*(row+1) , -180 + deg*(col)]
    ]
  );

}

NASA GIBS mengikuti gaya tile server pada umumnya, yaitu pada zoom level berikutnya eh matriks berikutnya, adalah matriks sekarang dipecah 2 sehingga menjadi 4 ubin,

m3 adalah 10 kolom x 5 baris.

Seperti dibahas tadi, masing-masing panjang dan tinggi nya adalah 36 derjat.

Untuk zoom berikut, dibagi 2,

m4 berisi 20 kolom dan 10 baris, karena merupakan hasil pembagian dua dari m3.

Masing-masing ubin di m4 jadinya berukuran 18 derjat x 18 derjat.

Dapatkah Anda melihat pola berikut?

m3 -> 36

m4 ->18

m5 -> 9

Berapakah derjat untuk angka m berikutnya?

var deg = 36/2**(m-3);

Jawabannya adalah petikan kode di atas …

dua buah asterik pada javascript adalah pangkat.

2**3 = 2 ^ 3 = 8

perhatikan tanda pangkat di JavaScript

Download GeoJSON untuk zoom berapa saja

Setelah kita tahu cara membuat polygon setiap zoom berapa saja , saatnya kita buatkan fungsi untuk mendownload GeoJSON untuk zoom berapa saja.

Kodenya sebagai berikut:


/**
 * fungsi untuk mendownload spesifik m atau zoom level NASA
*/
function dlm(m){
  // Create an empty GeoJSON collection
  var collection = {
    "type": "FeatureCollection",
    "features": []
  };
  
  //sekarang loop tiap row dan col
  // m3 ada 5  baris 10 kolom
  //var row=5,col=10;
  // m4 20
  var col=2**(m-3) * 10;
  var row=col/2;
  
  
  for(r=0;r<row;r++){
    for(c=0;c<col;c++){
      g = mx(m,r,c).toGeoJSON();//dari leaflet polygon langsung ke GeoJSON saja
      //nah, berhubung properties nya masih kosong, kita tambahin saja
      g.properties={m:m,r:r,c:c};
      collection.features.push(g);
    }
  }
  
  saveAs(new Blob([JSON.stringify(collection)], {type: "text/plain;charset=utf-8"})
    ,'m'+m+'.geojson')
  
}    
    

Jika Anda menjalankan dlm(8), maka Anda akan disuguhkan download file m8.geojson, yang berisi SEMUA polygon untuk zoom 8.

Masih belum muntah?

Membuat file WLD

Kelebihan kita telah memiliki polygon untuk setiap ubin, kita bisa tahu extents atau bound di Leaflet.

Perhatikan kode konsol JavaScript berikut:

var mx311 = mx(3,1,1)

JSON.stringify(mx311.getBounds())
"{"_southWest":{"lat":18,"lng":-144},"_northEast":{"lat":54,"lng":-108}}"

Setiap fitur polygon di Leaflet memiliki fungsi getBounds(), yang sangat berguna bagi kita untuk mengetahui EXTENTS gambar ubin kita.

Nah, kalau kita sudah memiliki EXTENTS, kita bisa buatkan World Filenya

function bound2WLD(bound){
  //baris pertama adalah resolusi x
  var a=[];
  a.push((bound._northEast.lng-bound._southWest.lng)/512);
  a.push(0);
  a.push(0);
  a.push( -1* (bound._northEast.lat - bound._southWest.lat)/512);
  a.push(bound._southWest.lng);
  a.push(bound._northEast.lat);
  return a;

} 

Nah, berhubung citra ubin kita adalah 512 x 512 pixel, makanya resolusi adalah dibagi 512.

Kesimpulan sementara

Polygon -> bound -> WLD

Download WLD otomatis

untuk sementara, kita coba download semua file WLD untuk zoom level 3 saja dahulu … nanti kalau bener, baru kita download semua …

//download semua file WLD untuk zoom 3
function wld3zip(){
  //coba pake JSZIP
  var zip = new JSZip();
  //untuk zoom 3, row adalah 5, cols adalah 10
  var row=5,col=10;
  for(r=0;r<row;r++){
    for(c=0;c<col;c++){
      zip.file((3+'-'+r+'-'+c+'.wld') , bound2WLD(mx(3,r,c).getBounds()).join('\r\n'));
    }
  }
  
  zip.generateAsync({type:"blob"})
    .then(function (blob) {
    saveAs(blob, "m3.zip");
  });
	
}

Nah, berhubung kita mendownlod banyak file, sebaiknya dizip saja, menggunakan JSZIP. Hal ini memudahkan kita mendownload 50 file, karena dijadikan 1 saja, m3.zip.

Download WLD untuk zoom berapa saja

Setelah sukses download semua WLD untuk zoom level 3, kita lanjutkan ke level berapa saja ….

Kodenya mirip dengan sebelumnya, hanya ada beberapa yang perlu kita ubah …


//fungsi untuk mendownload semua file WLD untuk zoom level m
// @input m zoom
// @output ZIP file containing all WLD files
function wldzip(m){
  // pake JSZIP
  var zip = new JSZip();
  var col=2**(m-3) * 10;
  var row=col/2;
	for(r=0;r<row;r++){
		for(c=0;c<col;c++){
			zip.file((m+'-'+r+'-'+c+'.wld') , bound2WLD(mx(m,r,c).getBounds()).join('\r\n'));
		}
	}
  
  zip.generateAsync({type:"blob"})
    .then(function (blob) {
    saveAs(blob, "m"+m+".zip");
  });
	
}

Perhatikan bahwa kita perlu mengubah juga nama file WLD nya ya dan juga nama zip download nya, dan juga mx(3,r,c) sekarang menjadi mx(m,r,c).

Download ZIP file PNG.AUX.XML

Berikut kode untuk membuat file auxiliary dari semua ubin yang kita unduh. Kita butuh file png.aux.xml ini agar tidak perlu ditanya terus CRS / Kode EPSG untuk gambar kita.


//download zip file containing all png.aux.xml 
function zipAUX(m){
  var zip = new JSZip();
  var col=2**(m-3) * 10;
  var row=col/2;
	for(r=0;r<row;r++){
		for(c=0;c<col;c++){
			zip.file(
        (m+'-'+r+'-'+c+'.png.aux.xml') //filename
        , '<PAMDataset>\r\n' 
          +'  <SRS>GEOGCS["WGS 84",DATUM["WGS_1984",SPHEROID["WGS 84",6378137,298.257223563,AUTHORITY["EPSG","7030"]],AUTHORITY["EPSG","6326"]],PRIMEM["Greenwich",0,AUTHORITY["EPSG","8901"]],UNIT["degree",0.0174532925199433,AUTHORITY["EPSG","9122"]],AUTHORITY["EPSG","4326"]]</SRS>\r\n'
          + '</PAMDataset>'
      );
		}
	}
  
  zip.generateAsync({type:"blob"})
    .then(function (blob) {
    saveAs(blob, "PNG_AUX_XML_m"+m+".zip");
  });

}

Logikanya mirip dengan sebelumnya …

Voila .. sekarang kita sudah punya semuanya … ubin (download via wget), WLD dan juga AUX nya

Sekarang, gambar ubin apapun dari NASA, bisa kita unduh dan tampil cantik di QGIS kita!

Mabok?

temui saya di Gedung Baru FST UIN Suska … kita bahas secaran offline, biasanya lebih nancap!

Stabius Werner III Indonesia (dengan warna laut lebih terang)

NASA Blue Marble NG memiliki sedikit “kelemahan”, yaitu warna lautnya yang sedikit gelap. Di Wikipedia, gambar proyeksi dibuat menggunakan citra yang sama, tetapi lautnya diganti warna menjadi RGB(368CAD). Untuk menirukan hal yang sama dengan Wikipedia, saya terpaksa men-dissolve dahulu laut dari NE (Natural Earth 10m), lalu memberinya warna RGB(54,140,173) tersebut. SHP tersebut dibuka ke QGIS, lalu diexport menjadi png biasa, yang kemudian diproyeksikan ke Stabius Werner III dengan pusat di Indonesia (115 Timur).

Stabius Werner III dengan laut diganti warna

Hasilnya adalah gambar di atas. Gambar dengan resolusi tinggi dapat didownload dari Google Drive. Terimakasih atas kuota unlimited untuk saya.

Hasil dan sampah pekerjaan saya bisa diikuti pada Google Drive saya

NASA Blue Marble + g.Projector

Silahkan digabung tulisan saya, ya … Anda download dulu G.Projector, lalu kalau ingin menghasilkan raster yang bagus, download Blue Marble NG yang resolusi besar. Resolusi 8km cocok untuk cetak poster A3 ataupun A2 (penelitian S1/S2) karena telah berukuran 5400×2700 pixels . Namun kalau untuk latar peta, download resolusi 2km atau 500m per pixel saja.

G.Projector + NASA Blue Marble NG

Kelebihan dari NASA Blue Marble NG sudah benar-benar klop dengan NASA G.Projector, mungkin karena satu pabrik, ya …. jadi batas wilayah peta sudah pas … tinggal di Okay saja …

https://dosengis.wordpress.com/2019/07/29/download-bluemarble-ng/

Download Nasa G.ProjectorWin

#Nasa G.ProjectorWin dapat membantu Anda meproyeksikan raster dengan resolusi tinggi. Aplikasi berbasis #JAVA ini bahkan sudah datang dengan sample image yang cukup mumpuni menjadi bahan ajar MK Geologi di sekolah! Bahkan ada gambar topo planet #MARS juga, tentu selain #Bumi.

Contoh hasilnya adalah WAGNER 1 untuk Indonesia berikut:

Wagner I projection, with centered on Indonesia.
Azimuthal Equidistant, centered on Indonesia
Stabius Werner III , centered on Indonesia
Stabius Werner III dengan Indonesia menjadi salah satu pusatnya

Download MODIS Terra Chlorophyll A untuk Indonesia

Silahkan #download #citrasatelit #MODIS #klorofil untuk Indonesia tanggal 27 dan 28 Juli 2019

https://drive.google.com/drive/folders/1REDq36q9cYWTt8vJ3QceF91TZbxsRmRo?usp=sharing

Gambar sudah saya georeferencing, sehingga bisa langsung dibuka di #ArcGIS dan atau #QGIS

Nah, berhubung ini citra satelit, terkadang kita terkendala awan. Kendala lain adalah diluar swath satelit. Di gambar terlihat putih, karena NO DATA.

swathe /swO;T, swQT/ (chiefly N. Amer. also swath /sweID/)
· n. (pl. swathes or swaths /swO;Ts, swO;Ds, swQTs/)
1 a row or line of grass, corn, etc. as it falls when mown or reaped.
2 a broad strip or area: vast swathes of countryside.
– PHRASES cut a swathe through pass through (an area) causing destruction or upheaval. cut a wide swathe N. Amer. attract much attention.
– ORIGIN OE swæth, swathu ‘track, trace’, of W. Gmc origin.

Pentingnya Klorofil A

Klorofil A biasanya menunjukkan fitoplankton di laut, sehingga seharusnya, jika banyak plankton, maka spongbob eh petrik eh ikan juga akan banyak, karena mereka memakan plankton. Dengan ini, nelayan jadi tau ke mana harus melaut … well, nelayan yang ngerti RemoteSensing 😀

Download BlueMarble NG

BluemarbleNextGeneration adalah versi baru dari BlueMarble.

BlueMarble lama, “hanya” lah hasil penggabungan data 4 bulan MODIS, dan memiliki level detail 1 kilometer persegi per pixel.

BlueMarbleNextGeneration (ini NASA ngikut ngikut UI bikin siak NG), merupakan komposisi data setahun, dan memiliki resolusi spasial 500 meter per pixel.

Eh, kalau mau baca versi resminya, ke web nya Nasa saja, ya …

https://visibleearth.nasa.gov/view.php?id=74117

Nah, di sana, Anda tinggal dowload. Ada dua versi, Anda tidak perlu download semua. Versi JPG cocok untuk kebutuhan sehari-hari, lebih kecil namun sedikit lossless (ada detail yang hilang). Versi PNG kalau Anda niat mau membuat produk seperti digital printing dsb. Warning: file nya guedde!

WARNING: file nya gede, jadi jangan langsung dibuka, tapi klik kanan, save-as!

Nah, yang agak kurang dari file ini adalah tidak ada file WORLD nya dan AUX nya. Sehingga, kalau dibuka di QGIS atau ArcGIS, belum ter-geo-referencing.

Nah, sebenarnya, kalau Anda mengikuti tulisan saya, Anda pasti bisa buat sendiri WORLDFILE dan AUXILIARYFILE nya.

Tapi, buat yang malas bikin sendiri, dapat download dari google drive saya.

https://drive.google.com/open?id=1Wr8Wp3-K2-SPijMy1YCj-e5af6ZSnAhT

Tampilan BlueMarble pas posisinya dengan layer continent di ArcMap

Cara Agar BlueMarbleNG tampil di QGIS:

  1. Download citra JPG blue marble next generation resolusi 8 km di sini https://eoimages.gsfc.nasa.gov/images/imagerecords/74000/74117/world.200408.3x5400x2700.jpg
  2. Download file World nya di sini:
    https://drive.google.com/open?id=1GQ5YuyezdJFtTutfBUr5ljzREh9aKMI1
  3. Download file AUXILIARY nya di sini:
    https://drive.google.com/open?id=1IZGk6aG34WyiOV1Hrs7PL-I_T1hIMcd4
  4. Pastikan ketiga file itu terdapat pada folder yang sama
  5. Buka file JPG nya ke QGIS
Tampilan Blue Marble di QGIS

NASA VIIRS_Black_Marble

Bagi Anda yang mengikuti postingan di FB SIFSuskaGIS, Anda dapat mengunduh citra ubin VIIRS Black Marble dan menghasilkan sebuah gambar utuh dengan perintah montage dari ImageMagick.

Namun, yang menjadi kendala adalah gambar tersebut hanyalah sebuah PNG yang tidak memiliki referensi koordinat, jadi jika dibuka di ArcGIS ataupun QGIS (atau GlobalMapper atau MapInfo), tidak akan align dengan peta lainnya, karena koordinatnya tidak ada.

Nah, kita dapat lagi melihat informasi dari Server GIBS nya NASA,

Nasa GIBS Server WMTS Capabilities

  <Layer>
     <ows:Title xml:lang="en">Black Marble (VIIRS, SNPP)</ows:Title>
     <ows:WGS84BoundingBox crs="urn:ogc:def:crs:OGC:2:84">
        <ows:LowerCorner>-180 -90</ows:LowerCorner>
        <ows:UpperCorner>180 90</ows:UpperCorner>
    </ows:WGS84BoundingBox>
     <ows:Identifier>VIIRS_Black_Marble</ows:Identifier>
     <Style isDefault="true">
         <ows:Title xml:lang="en">default</ows:Title>
         <ows:Identifier>default</ows:Identifier>


     </Style>
     <Format>image/png</Format>
     <Dimension>
         <ows:Identifier>Time</ows:Identifier>
         <ows:UOM>ISO8601</ows:UOM>
         <Default>2016-01-01</Default>
         <Current>false</Current>
         <Value>2012-01-01/2012-01-01/P1Y</Value>
         <Value>2016-01-01/2016-01-01/P1Y</Value>
     </Dimension>
     <TileMatrixSetLink>
         <TileMatrixSet>500m</TileMatrixSet>
     </TileMatrixSetLink>
     <ResourceURL format="image/png" resourceType="tile" template="https://gibs.earthdata.nasa.gov/wmts/epsg4326/best/VIIRS_Black_Marble/default/{Time}/{TileMatrixSet}/{TileMatrix}/{TileRow}/{TileCol}.png"/>
  </Layer>

Yang perlu diperhatikan adalah BoundingBox nya.

Apa itu BoundingBox

Bounding box atau Extents adalah batas peta. Biasanya formatnya adalah

xmin ymin xmax ymax

yang artinya koordinat paling kiri bawah dan paling kanan atas dari gambar.

 <ows:WGS84BoundingBox crs="urn:ogc:def:crs:OGC:2:84">
    <ows:LowerCorner>-180 -90</ows:LowerCorner> XMIN YMIN
    <ows:UpperCorner>180 90</ows:UpperCorner> XMAX YMAX
</ows:WGS84BoundingBox>

Nah, jika kita tahu koordinat BoundingBox, kita dapat membuatkan WORLDFILE nya,

Apa itu World File

World File adalah file teks yang isinya cuma 6 baris, yang berisi informasi bagaimana sebuah citra itu tempatnya di dunia nyata. Atau kira-kira ini gambar peta apa, berikut dengan koordinatnya.

World File biasanya mengikuti format penamaan gambar kita. Misalnya Anda punya gambar peta DODOLKAMPRET.jpg, maka nama file worldnya adalah DODOLKAMPRET.jgw ataupun boleh juga DODOLKAMPRET.wld

Jika Anda memberinama CEBONG.jgw atau CEBONG.wld tidak akan mau.

Aturan penulisan World File

world file berisi 7 baris sebenarnya (baris terakhir kosong).

Baris 1 berisi resolusi sumbu x.

Resolusi adalah jarak per pixel.

Nah karena kita tahu tadi peta kita koordinatnya adalah

xmin = -180

xmax = 180

(coba liat lagi boundingbox nya om)

maka bentangan jarak adalah xmax – xmin , yaitu 180 dikurang -180, hasilnya adalah 360. lho kok bisa, bukan nya 180 dikurang 180 adalah nol? liat lagi baik baik roki gerung.

Namun, yang ditulis dibaris 1 adalah resolusinya, yaitu jarak bentang ini dibagi dengan width nya gambar. Nah, sebagai contoh, gambar z4.png beresolusi 10240×5120 pixels. Nah width nya adalah 10240 pixel.

resolusi sumbu x atau longitude nya adalah 360/10240

yaitu 0.03515625

Niat amat ngitungnya pake python …?

kalau pakai calc.exe, berhubung gw di Indonesia, windows saya pake koma sebagai pemisah desimalnya, makanya lebih enak pake python atau javascript kalau ngitung ini.

Kembali ke baris 1

kita sudah dapat angka 0.03515625 adalah resolusi horizontal atau resolusi x atau resolusi longitude gambar kita.

Ini adalah isi baris pertama world file kita.

Baris kedua dan ketiga isinya nol kalau gambar kita lurus

baris kedua dan ketiga isinya kemiringan sumbu x dan sumbu y nya. Berhubung gambar kita lurus saja, makanya diisi nol.

Baris keempat adalah minus resolusi sumbu Y

Nah, cara ngitungnya mirip dengan menghitung resolusi X tadi, cuma sekarang kita hitung resolusi vertikal gambar kita.

-1 * (ymax - ymin)/height

ymax kita adalah 90, ymin adalah minus 90, maka ymax kurang ymin adalah 180.

height atau tinggi pixel gambar kita adalah 5120.

-180/5120
-0.03515625

Baris ke lima adalah koordinat x gambar paling kiri atas.

nah, dari boundingbox, kita tahu koordinat paling atas adalah xmin

xmin kita adalah -180

Baris ke enam adalah koordinat y gambar paling kiri atas

kiri atas artinya adalah ymax. (ingat bahwa koordinat latitude itu ke atas bertambah, ke bawah berkurang. Makanya yang paling atas adalah YMAX nya, bukan YMIN ya

ymax kita adalah 90

Nah dari informasi 4 buah tadi, kita sudah bisa membuat sendiri world file yaitu

0.03515625
0
0
-0.03515625
-180
90

Sekarang simpan file teks tersebut dengan nama sesuai nama gambar kita.

Berhubung peta kita namanya z4.png, maka world file nya adalah z4.pgw

z4.wld juga boleh sebenarnya

kalau kita punya file japanisgir.JPG, maka file world nya adalah JGW

kalau GeoTIFF .tif maka world filenya adalah dot TFW atau boleh juga semua nya *.wld

Sekarang buka gambar kita dengan QGIS atau ArcGIS

Tambahkan sebuah SHP, misalnya pada kali ini saya masukkan admin00.shp, yaitu batas administrasi negara per tahun 2000.

Wow, keren kan … gambar kita pas dibawah peta kita. Presisi sekali.

756 Layer WMTS Landsat NASA

Bagi Anda yang mengerti WebGIS, tentu tahu tempe dengan Leaflet JS. Nah, sekarang sudah saya buatkan sedikit snippet untuk mengambil semua 756 Layer (bahkan sebahagian besar update tiap hari dan bisa diakses historynya). Silahkan lihat contekannya dari file Ms. Excel berikut:

Untuk tiap-tiap layer tersebut sudah saya bantu dikit JavaScript nya, sehingga nanti tinggal di tempel setelah deklarasi variabel map nya leaflet

```

var Agricultural_Lands_Croplands_2000 = L.tileLayer('https://gibs.earthdata.nasa.gov/wmts/epsg3857/best/Agricultural_Lands_Croplands_2000/default/GoogleMapsCompatible_Level7/{z}/{y}/{x}.png'
,{attribution: '< a href="\'https :/ /gibs.earthdata.nasa.gov/colormaps/v1.3/Agricultural_Lands_Croplands_2000.xml\'">NASA'
,maxZoom:7
}).addTo(map);

```
var Agricultural_Lands_Pastures_2000 = L.tileLayer('https://gibs.earthdata.nasa.gov/wmts/epsg3857/best/Agricultural_Lands_Pastures_2000/default/GoogleMapsCompatible_Level7/{z}/{y}/{x}.png'
,{attribution: '< a href="\'https: / /gibs.earthdata.nasa.gov/colormaps/v1.3/Agricultural_Lands_Pastures_2000.xml\'">NASA'
,maxZoom:7
});

Waduh …WordPress merusak kode saya …

Tapi, seharusnya kalau Anda sudah semester 5 ke atas sudah tempe banget dengan kode di atas.

Silahkan Anda coba satu persatu, masukin jadi tile layer Anda di Leaflet.

Caranya bisa dengan nama layer ditambahkan titik addTo(map)

contoh:

Agricultural_Lands_Pastures_2000.addTo(map)

Tentu ini diasumsikan anda membuat nama variabel map di Leaflet Anda sebagai map.

Namun, kalau ingin membuat pakai radio button, nanti pengguna bisa memilih milih basemap, boleh berikut contekannya:

    var baseMaps = {
"Croplands (Global Agricultural Lands, 2000)":Agricultural_Lands_Croplands_2000

//...
//tambahkan lagi semua layernya ciat ciat, dengan format: koma nama layer HTML nya, lalu titik dua, lalu namavariabel javascriptnya
//...

, "Tulisan" : namaVariableTileLayerNya
};

L.control.layers(baseMaps,checkboxedLayers).addTo(map);        

Jika ingin pake cebok, sehingga ngga bau, pengguna bisa centang ceklis nya, bisa menggunakan variabel checkboxedLayers … dua-dua nya (baseMaps dan checkboxedLayers) mesti ada dulu …

Silahkan pamerkan ke teman Anda … dijamin lebih bingung daripada Anda bingung baca ampe sini … hehehehehe

BTW, ngga pake skrinsyot berarti PALESU ™

Berikut skrinsot saya ….

Eh … BTW eniwey baswey, setelah melihat zoom nya hanya ampe segitu, dan dibandingkan satelit mata-mata DG, mungkin Anda terbersit pikiran … kok jelek banget hasil kerjaan NASA ya? Ya ngga lah .. kan resolusi yang dikasih ke kita … dan itu juga diambil dari satelit yang jauh orbitnya … bukan satelit mata-mata

NASA WMTS Landsat

Buat yang iseng ingin liat-liatin bumi, silahkan gunakan layanan WMTS dari NASA berikut:


https://gibs.earthdata.nasa.gov/wmts/epsg3857/best/1.0.0/WMTSCapabilities.xml

Silahkan tambahkan ke QGIS Anda di bagian WMS/WMTS pada Browser. Nanti akan keluar banyak sekali layer yang bisa dimasukkan ke peta Anda … HATI HATI TERHADAP PETANYA … BISA SAJA ANDA KEWECHA DENGAN GAMBARNYA … SEPERTI SKRINSYOT BERIKUT:

Kok bisa negara jiran yang baru merdeka lebih terang dari sebuah provinsi yang kaya raya … minyak di atas (sawit) dan dibawah bumi,…