Arsip Tag: Pekanbaru

Download NLP Pekanbaru 10k

Buat Anda di Kota Pekanbaru, silahkan download non geotagging PDF A3 referensi Nomor Lembar Peta (NLP) yang mengacu ke penomoran RBI dari Badan Informasi Geospasial. Peta dibuat skala 1:125ribu, artinya 1 cm di kertas A3 nantinya adalah 1,25km di dunia. Setelah Anda tahu kode 6 digit NLP ini, Anda dapat memesan peta tersebut ke BIG. Harap peta ini membantu, karena NLP itu sedikit membingungkan buat pemula.

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

File QGIS3 nya dan SHP nya juga sudah saya sertakan dalam RAR pada Google Drive di atas.

Batch Convert MapInfo *.TAB ke ESRI Shape *.SHP

Ceritanya, saya mendapatkan banyak sekali file *.TAB (dari MapInfo Table), 424 buah, dan sayangnya file tersebut pun ter-proyeksi ke kode UTM yang salah, yaitu UTM 47 Selatan, padahal, Pekanbaru berada pada UTM 47 Utara. Saya ingin mengubahnya menjadi ESRI Shape File (*.SHP) agar lebih mudah dibuka di QGIS dan maupun ArcGIS

Cara lama: buka di QGIS, lalu export satu-per-satu ke SHP dan jangan lupa di ubah CRS nya ke UTM Zona 47 Utara

Buka file *.TAB tersebut

terlihat CRS nya adalah EPSG:32747, yaitu UTM Zona 47 S

Klik kanan, lalu Export –> Save Features As …

Jangan lupa untuk mengganti CRS nya menjadi target kita. Karena Kota Pekanbaru berada di Zona 47 Utara, makanya EPSG nya adalah 32647

Simpan, dan ulangi untuk 424 buah file lainnya …. hehehehe

Cara Cepat: gunakan OGR2OGR

OGR2OGR berguna untuk mengconvert vector. Alhamdulillah, ogr2ogr sudah terinstall juga saat Anda menginstall QGIS,

Jalankan CMD, lalu eksekusi OSGeo4W.bat yang ada pada QGIS, untuk menggunakan perintah-perintah Open Source di CMD Anda.

ogr2ogr –long-usage

Usage: ogr2ogr [–help-general] [-skipfailures] [-append] [-update]
[-select field_list] [-where restricted_where|@filename]
[-progress] [-sql |@filename] [-dialect dialect]
[-preserve_fid] [-fid FID] [-limit nb_features]
[-spat xmin ymin xmax ymax] [-spat_srs srs_def] [-geomfield field]
[-a_srs srs_def] [-t_srs srs_def] [-s_srs srs_def] [-ct string]
[-f format_name] [-overwrite] [[-dsco NAME=VALUE] …]
dst_datasource_name src_datasource_name
[-lco NAME=VALUE] [-nln name]
[-nlt type|PROMOTE_TO_MULTI|CONVERT_TO_LINEAR|CONVERT_TO_CURVE]
[-dim XY|XYZ|XYM|XYZM|layer_dim] [layer [layer …]]

Advanced options :
[-gt n] [-ds_transaction]
[[-oo NAME=VALUE] …] [[-doo NAME=VALUE] …]
[-clipsrc [xmin ymin xmax ymax]|WKT|datasource|spat_extent]
[-clipsrcsql sql_statement] [-clipsrclayer layer]
[-clipsrcwhere expression]
[-clipdst [xmin ymin xmax ymax]|WKT|datasource]
[-clipdstsql sql_statement] [-clipdstlayer layer]
[-clipdstwhere expression]
[-wrapdateline][-datelineoffset val]
[[-simplify tolerance] | [-segmentize max_dist]]
[-addfields] [-unsetFid]
[-relaxedFieldNameMatch] [-forceNullable] [-unsetDefault]
[-fieldTypeToString All|(type1[,type2])] [-unsetFieldWidth] [-mapFieldType srctype|All=dsttype[,srctype2=dsttype2]]
[-fieldmap identity | index1[,index2]] [-splitlistfields] [-maxsubfields val] [-explodecollections] [-zfield field_name] [-gcp ungeoref_x ungeoref_y georef_x georef_y [elevation]] [-order n | -tps]
[-nomd] [-mo “META-TAG=VALUE”]* [-noNativeData]

-f format_name: output file format name, possible values are:
-f “AmigoCloud”
-f “BNA”
-f “Carto”
-f “Cloudant”
-f “CouchDB”
-f “CSV”
-f “DB2ODBC”
-f “DGN”
-f “DXF”
-f “ElasticSearch”
-f “ESRI Shapefile”
-f “Geoconcept”
-f “GeoJSON”
-f “GeoJSONSeq”
-f “GeoRSS”
-f “GFT”
-f “GML”
-f “GPKG”
-f “GPSBabel”
-f “GPSTrackMaker”
-f “GPX”
-f “Interlis 1”
-f “Interlis 2”
-f “JML”
-f “KML”
-f “LIBKML”
-f “MapInfo File”
-f “MBTiles”
-f “Memory”
-f “MSSQLSpatial”
-f “MVT”
-f “MySQL”
-f “netCDF”
-f “NGW”
-f “OCI”
-f “ODBC”
-f “ODS”
-f “OGR_GMT”
-f “PCIDSK”
-f “PDF”
-f “PDS4”
-f “PGDUMP”
-f “PostgreSQL”
-f “S57”
-f “Selafin”
-f “SQLite”
-f “TIGER”
-f “VDV”
-f “WAsP”
-f “XLSX”
-append: Append to existing layer instead of creating new if it exists
-overwrite: delete the output layer and recreate it empty
-update: Open existing output datasource in update mode
-progress: Display progress on terminal. Only works if input layers have the
“fast feature count” capability
-select field_list: Comma-delimited list of fields from input layer to
copy to the new layer (defaults to all)
-where restricted_where: Attribute query (like SQL WHERE)
-wrapdateline: split geometries crossing the dateline meridian
(long. = +/- 180deg)
-datelineoffset: offset from dateline in degrees
(default long. = +/- 10deg,
geometries within 170deg to -170deg will be split)
-sql statement: Execute given SQL statement and save result.
-dialect value: select a dialect, usually OGRSQL to avoid native sql.
-skipfailures: skip features or layers that fail to convert
-gt n: group n features per transaction (default 20000). n can be set to unlimited
-spat xmin ymin xmax ymax: spatial query extents
-simplify tolerance: distance tolerance for simplification.
-segmentize max_dist: maximum distance between 2 nodes.
Used to create intermediate points
-dsco NAME=VALUE: Dataset creation option (format specific)
-lco NAME=VALUE: Layer creation option (format specific)
-oo NAME=VALUE: Input dataset open option (format specific)
-doo NAME=VALUE: Destination dataset open option (format specific)
-nln name: Assign an alternate name to the new layer
-nlt type: Force a geometry type for new layer. One of NONE, GEOMETRY,
POINT, LINESTRING, POLYGON, GEOMETRYCOLLECTION, MULTIPOINT,
MULTIPOLYGON, or MULTILINESTRING, or PROMOTE_TO_MULTI or CONVERT_TO_LINEAR. Add “25D” for 3D layers.
Default is type of source layer.
-dim dimension: Force the coordinate dimension to the specified value.
-fieldTypeToString type1,…: Converts fields of specified types to
fields of type string in the new layer. Valid types are : Integer,
Integer64, Real, String, Date, Time, DateTime, Binary, IntegerList, Integer64List, RealList,
StringList. Special value All will convert all fields to strings.
-fieldmap index1,index2,…: Specifies the list of field indexes to be
copied from the source to the destination. The (n)th value specified
in the list is the index of the field in the target layer definition
in which the n(th) field of the source layer must be copied. Index count
starts at zero. There must be exactly as many values in the list as
the count of the fields in the source layer. We can use the ‘identity’
setting to specify that the fields should be transferred by using the
same order. This setting should be used along with the append setting. -a_srs srs_def: Assign an output SRS
-t_srs srs_def: Reproject/transform to this SRS on output
-s_srs srs_def: Override source SRS

Srs_def can be a full WKT definition (hard to escape properly),
or a well known definition (i.e. EPSG:4326) or a file with a WKT
definition.

=====

Cara Penggunaan OGR2OGR

ogr2ogr -f “ESRI Shapefile” namatarget.shp FILESUMBERASAL.TAB -t_srs EPSG:32647

Nah, untuk tahu format apa saja yang didukung oleh OGR2OGR, silahkan lihat keterangan ogr2ogr –long-usage di atas …

Driver OGR dapat mendeteksi otomatis sumber kita, makanya, yang perlu dikasih tahu ke OGR adalah TARGET kita saja …

Karena saya ingin membuat SHP, makanya formatnya bernama “ESRI Shapefile”, lalu diikuti nama file yang ingin dibuat, diikuti oleh FILESUMBER.tab … dan jangan lupa untuk menambahkan target SRS nya, yaitu EPSG:32647, karena saya ingin diproyeksi ke UTM Zona 47N

Contoh:

D:\GIS\Pekanbaru\Bapenda\SMARTMAP\peta>ogr2ogr -f “ESRI Shapefile” 14.shp 14.TAB

D:\GIS\Pekanbaru\Bapenda\SMARTMAP\peta>ogr2ogr -f “ESRI Shapefile” 1471.shp 1471.TAB

D:\GIS\Pekanbaru\Bapenda\SMARTMAP\peta>ogr2ogr -f “ESRI Shapefile” 1471010.shp 1471010.TAB

contoh cuplikan penggunaan ogr2ogr

Contoh Error:

D:\GIS\Pekanbaru\Bapenda\SMARTMAP\peta>ogr2ogr -f “ESRI Shapefile” 1471010001.shp 1471010001.TAB
ERROR 1: Attempt to write non-polygon (POINT) geometry to POLYGON type shapefile.
ERROR 1: Unable to write feature 4488 from layer 1471010001.
ERROR 1: Terminating translation prematurely after failed
translation of layer 1471010001 (use -skipfailures to skip errors)

Error ini karena file asal, tabel nya memiliki 2 jenis fitur, yaitu titik dan polygon. Sedangkan ESRI hanya mendukung 1 jenis fitur saja, apakah titik saja, atau polygon saja …

Nah, agar tidak gagal, perlu juga ditambahkan -skipfailures di perintah ogr2ogr nya … (lihat penggunaan di long-usage di atas)

Cara lebih cepat: menggunakan FOR

OGR2OGR perlu juga kita ketikkan satu per satu nama file nya … dan cukup rempong ..

Agar lebih cepat, kita gunakan perintah FOR pada CMD kita, yaitu

mkdir 32647

for %f in (*.tab) do ogr2ogr -f “ESRI Shapefile” 32647/%~nf_32647.shp %f -t_srs EPSG:32647

mkdir 32647

mkdir berguna untuk membuat direktori baru, karena saya ingin hasilnya disimpan di direktori tersebut, daripada memenuhin direktori ini …

%~n

Nah, ada yang bagus pada CMD adalah kita bisa menggunakan modifier ~n, yaitu nama file tanpa extensi

sehingga, %~nf artinya adalah namafile saja tanpa extensi … jika %f berisi dodol.tab, maka %~nf akan berisi dodol

%~nf_32647.shp

arti nya adalah ambil nama filenya, tambahkan akhiran _32647.shp

Saya suka (dan menyarankan) untuk membuat kode EPSG pada nama file yang menggunakan proyeksi selain 4326 (WGS 84). Dengan begitu, nanti kita jadi ingat nama proyeksi nya tanpa harus membuka filenya …

32647/%~nf_32647.shp

artinya, buat file nya di direktori 32647/ … karena saya tidak ingin menumpuk di sini …

for %f in (*.tab) do {{{PERINTAH}}}

nah, ini artinya UNTUK SEMUA FILE TAB kita di direktori ini, masukkan ke variabel f

nantinya, baru pada {{{PERINTAH}}} bisa disisipkan variabel f tadi …

variabel pada CMD menggunakan %, bukan $ ya …!

agar tidak merusak, saya pertama kali menggunakan dulu

for %f in (*.tab) do echo ogr2ogr -f “ESRI Shapefile” 32647/%~nf_32647.shp %f -t_srs EPSG:32647

perintah echo artinya tampilkan ke layar saja …

nah, karena saya lihat hasil perintah nya sudah bagus, baru saya ganti PERINTAH nya dengan perintah OGR2OGR di atas … untuk jaga-jaga saja agar tidak salah perintah…

setelah OK, baru echo nya saya hapus …

To Sum Up

seharusnya, sampai di sini Anda sudah tahu arti semua perintah panjang tadi …

for %f in (*.tab) do ogr2ogr -f “ESRI Shapefile” 32647/%~nf_32647.shp %f -t_srs EPSG:32647

Optional: Overwrite dan Skip Failure

berhubung data saya yang tidak bagus, ada juga terkadang menggunakan -skipfailures dan juga -overwrite agar ditimpa saja kalau sudah ada file nya…

Hasilnya

Tunggu sebentar, dan … 1412 file dihasilkan 1 perintah tersebut …

Peringatan

CMD bukan untuk anak SD … atau orang mengaku dewasa tetapi otak masih cengeng. Perintah menggunakan konsol bisa merusak data Anda jika anda tidak berhati-hati. Harap gunakan back-up sebelum melakukan perintah berbahaya, buat jaga-jaga kalau prosesnya merusak.

U.S. Army Map Service 1943 Sumatra, Series T511, 1:250,000, sHEET30 pAKANBARU

Buat manusia, sila lihat demonya saja langsung:

http://suskatilesvr.000webhostapp.com/txu-oclc-6606499-30/

Buat yang ngga normal, boleh lanjut … tapi sakit kepala tanggung sendiri …

*Prelude*

Sebenarnya lagi sakit (hati) karena ternyata ndak banyak hosting yang dukung mapscript apalagi mapserver. Terpaksa akhirnya generet ubin sendiri lalu diupload ke server, lalu nanti dikonsumsi orang lain secara statis.

Nah, peta PAKANBARU (sesuai judul) yang awalnya 3,7Mb sekarang menjadi 56Mb. Kenapa? karena peta tersebut terpaksa dipotong-potong agar menjadi ubin. Peta Pakanbaru tersebut saya potong untuk zoom level 10 sampai dengan zoom level 13 saja, dan itu sudah 50MB, hampir 20 kali lipat dari ukuran awalnya.

Kenapa peta perlu di fotong fotong jadi ubin?

Agar peta dapat dikonsumsi oleh hp, laptop, peta yang “besar” harus dibuatnkan bertentuk WEBGIS. Nah, agar tampil gambar tersebut di web, tidak mungkin gambar yang besar tersebut dikirim ke client, karena selain menghabiskan bandwidth user, bisa saja tidak mampu ditampilkan oleh user kita nantinya (karena kegedean).

Biar gambar peta yang besar tadi bisa masuk ke henpon, eh smartphone, maka peta tersebut dipotong-potong dulu menjadi ubin atau tile, lalu dengan javascript ditampilkan kembali seolah-olah mereka menyatu. Dengan metode ini, webgis/peta dapat dinikmati dengan cepat dan ringan dan interaktif.

Ubin ? Tile? Sule?

Ngga … bukan artis … istilah ubin adalah versi bahasa untuk tile, yaitu gambar kecil kecil yang disusun seperti menyusun marmer ubin di lantai. Kenapa dibilang ubin? karena berbentuk petak petak kecil-kecil, biasanya 256×256 pixel.

Kenapa gambar kecil? karena kita hanya ingin menampilkan potongan peta yang diperlukan oleh client saja. Untuk apa menampilkan seluruh peta kalau toh user tidak butuh.

Jadi, bagaimana membuat ubin?

Ubin bisa dihasilkan otomatis oleh MapServer atau GeoServer. Namun, mencari server tempat memberikan layanan ini sangat susah. Ada sih, tapi biayanya sekitar 100USD per bulan. Sangat tidak ekonomis. Cara lain adalah dengan setup VPS sendiri lalu install GeoServer atau MapServer di sana.

Padahal, hosting yang banyak adalah shared-hosting PHP yang biasanya untuk menghosting blog (WordPress) atau sistem informasi lain yang masih menggunakan ‘bahasa’ eh priprosesor PHP.

PHP dukung menghasilkan ubin sendiri, tapi harus menggunakan extensi php-mapscript. Nah, hampir seluruh server berbayar (murah, ekonomis) yang saya check, tidak memberikan layanan ini).

Kalaulah hostingan mendukung mapscript, tentu yang perlu saya unggah hanyalah peta awal, yang hanya 3 megaan, lalu world filenya, lalu aux nya, lalu sebuah file map. Ndak kan nyampai 4 mega byte, dan bisa sampai zoom unlimited. Namun, ubin dengan cara ini akan dihasilkan on-the-fly, secara otomatis, secara ‘dinamis’ oleh server, sehingga akan menghabiskan CPU dan memory.

Solusi? Buat dulu ubin dari rumah, lalu upload semua ubin ke server hosting pakai FTP

Jadi, kalau ubin kita seed dahulu, tentu web-server (hosting) nantinya lebih ringan, karena hanya tinggal memberikan file gambar ubinnya.

Kalau pakai MapServer, kelebihannya semua ubin dihasilkan otomatis saat hanya dibutuhkan oleh client saja. Ukuran penyimpanan lebih hemat, namun SANGAT BOROS CPU DAN MEMORY. Makanya server hosting biasanya tidak mau memberikan layanan ini …

makanya di sini saya sakit

cerita baiknya, isyunya salah seorang mahasiswa saya mau meminjamkan resource VPS nya untuk uji ketahanan server ubinnya.

Mudah-mudahan jadi …

Alternatif lain kemaren adalah menggunakan layanan DDNS, lalu men-setting modem internet di rumah agar bisa memberikan port-forwarding ke ‘server’ eh laptop lama gw yang bertidan sebagai tile server. Namun, ini akan mengganggu sedikit bandwidth upload indihome rumah saya, sehingga kalau ada mahasiswa yang main game Mobile Legend di rumah bisa agak terganggu. Donlot yutub ndak terganggu, karena hanya menggunakan bandwidth download.

Microsoft Virtual Earth untuk Pekanbaru 2012-01-15

Pada zaman dahulu … Microsoft berbaik hati memberikan secara percuma citra satelit untuk kota Pekanbaru yang sepertinya diambil pada tanggal 15 Januari 2012. Pada saat itu terlihat stadion utama di Utara kampus UR masih dalam pengerjaan. Foto tersebut telah digantikan dengan foto / citra terbaru, yang sayangnya tidak bertanggal melainkan diberi rentang, seperti ini:

dan sepertinya merupakan citra satelit yang diambil tahun 2014. Nah, bagi Anda yang kolektor, dan mau menyimpan kenangan tampilan kota Pekanbaru tanggal 15 Januari 2012 tersebut, silahkan datang ke Kampus UIN Suska Riau, minta ke mahasiswa saya atau bisa saja langsung ke saya. Ukuran nya 300Megabyte, sudah dimontage/di-stich menjadi JPG tunggal.

Berikut GDALINFO untuk gambar tua tersebut:

gdalinfo "Microsoft VirtualEarth z19.jpg"
Driver: JPEG/JPEG JFIF
Files: Microsoft VirtualEarth z19.jpg
 Microsoft VirtualEarth z19.jpg.aux.xml
 Microsoft VirtualEarth z19.jgw
Size is 29729, 21312
Coordinate System is:
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.01745329251994328,
 AUTHORITY["EPSG","9122"]],
 AUTHORITY["EPSG","4326"]]
Origin = (101.375884115695950,0.511167347431183)
Pixel Size = (0.000005364418030,-0.000005364418030)
Metadata:
 COMMENT=Created with SAS.Planet
 EXIF_GPSLatitude=(0) (27) (14.4)
 EXIF_GPSLatitudeRef=N
 EXIF_GPSLongitude=(101) (27) (20.24)
 EXIF_GPSLongitudeRef=E
 EXIF_GPSMapDatum=WGS-84
 EXIF_GPSVersionID=0x2 0x2 00 00
 PyramidResamplingType=NEAREST
Image Structure Metadata:
 COMPRESSION=JPEG
 INTERLEAVE=PIXEL
 SOURCE_COLOR_SPACE=YCbCr
Corner Coordinates:
Upper Left ( 101.3758841, 0.5111673) (101d22'33.18"E, 0d30'40.20"N)
Lower Left ( 101.3758841, 0.3968409) (101d22'33.18"E, 0d23'48.63"N)
Upper Right ( 101.5353629, 0.5111673) (101d32' 7.31"E, 0d30'40.20"N)
Lower Right ( 101.5353629, 0.3968409) (101d32' 7.31"E, 0d23'48.63"N)
Center ( 101.4556235, 0.4540041) (101d27'20.24"E, 0d27'14.41"N)
Band 1 Block=29729x1 Type=Byte, ColorInterp=Red
 Overviews: 14865x10656, 7433x5328, 3717x2664
 Image Structure Metadata:
 COMPRESSION=JPEG
Band 2 Block=29729x1 Type=Byte, ColorInterp=Green
 Overviews: 14865x10656, 7433x5328, 3717x2664
 Image Structure Metadata:
 COMPRESSION=JPEG
Band 3 Block=29729x1 Type=Byte, ColorInterp=Blue
 Overviews: 14865x10656, 7433x5328, 3717x2664
 Image Structure Metadata:
 COMPRESSION=JPEG

 

 

Terlihat ukuran nya adalah 29729×21312 pixel, jadi cukup besar tapi ngga besar banget … karena cakupan nya (lihat di extent nya / Corner Coordinates nya), hanya sebahagian kecil kota Pekanbaru saja, seperti terlihat di bawah ini …

Microsoft VirtualEarth z14

Resolusi gambar sudah sangat sempurna, sekitar 60cm per pixel, perhitungan ecek ecek saya seperti ini (dalam meter).. angka 111361,52394697778880823075590439 adalah angka ajaib faktor pengali meter per derjat untuk desa ranah singkuang UTM zona 47N

2018-06-27_01-58-41 resolusi.jpg

Angka 0,000005364418030 diambil dari Pixel Size dari GDALINFO

Pixel Size = (0.000005364418030,-0.000005364418030)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Awan dan Indraja

Penginderaan Jauh (Indraja) atau bahasa ocu-nya, remote sensing, paling bete kalo ketemu awan.

Dan tahukah Anda apa yang lebih bete lagi setelah itu? setelah melakukan filter terhadap citra Sentinel 2 untuk kota Pekanbaru yang memang sering tertutup awan, cuma ada satu gambar semenjak 2016 yang layak untuk perhitungan, yaitu yang diambil tanggal 2017-04-04, atau linknya sebagai berikut:

http://sentinel-s2-l1c.s3-website.eu-central-1.amazonaws.com/#tiles/47/N/QA/2017/4/4/0/

dan itupun 41 persen tertutup awan :((

<CLOUDY_PIXEL_PERCENTAGE>40.9111</CLOUDY_PIXEL_PERCENTAGE>

Kalau Anda berminat indraja Pekanbaru, sila cari-cari di sini,

http://satcat.eoproc.com/cat-01/dev-online.html?&config=aws-01

lalu kalau suatu nanti nemu citra yang bagus, harap hubungi saya, kamp**@gmail.com