Showing posts with label Python. Show all posts
Showing posts with label Python. Show all posts

Analisis Geospatial menggunakan Python Bagian 4 - Konversi SHP ke PostgrSQL

Add Comment
Saat ini kita lanjutkan setelah dibuat geodatabase py_geo_db di POstgreSQL sebelumnya. Kita akan mengkonversi file shapefile ke dalam geodatabase PostgreSQL.

Dalam contoh ini saya akan menggunakan dengan format shapefile. Anda bisa mengganti file shp dengan file anda sendiri. Berikut contoh kode programnya sebagai berikut:

# -*- coding: utf-8 -*-
"""
Created on Fri Apr 12 09:36:42 2019

@author: Wawan H Nur
Mengkonversi file shp BatasKabupaten.shp ke database py_geo_db di PostgreSQL
"""

import subprocess

db_schema = "SCHEMA=geodata"
overwrite_option = "OVERWRITE=YES"
geom_type = "POLYGON"
output_format = "PostgreSQL"

db_connection = """PG:host=localhost port=5432 user=userwhn dbname=py_geo_db password=pwdwhn"""
                         
input_shp = "../geodata/BatasKabupaten.shp"

subprocess.call(["ogr2ogr", "-lco", db_schema, "-lco", overwrite_option, "-nlt", geom_type, "-f", output_format, db_connection, input_shp])

Penjelasan dari kode program tersebut adalah melakukan konversi file shp dengan nama BatasKabupaten.shp yang mempunyai tipe geometri polygon kedalam geodatabase py_geo_db pada schema geodata. Kode skrip tersebut akan menghasilkan sebuah tabel BatasKabupaten di database py_geo_db pada schema geodata. Output format yang akan kita tuju PostgreSQL.

Untuk melihat layer hasil konversi dapat dilakukan dengan menggunakan QGIS. 




Untuk tipe geometri terdapat beberapa format dengan contoh datanya sebagai berikut:
  • POINT(0 0)
  • LINESTRING(0 0,1 1,1 2)
  • POLYGON((0 0,4 0,4 4,0 4,0 0),(1 1, 2 1, 2 2, 1 2,1 1))
  • MULTIPOINT(0 0,1 2)
  • MULTILINESTRING((0 0,1 1,1 2),(2 3,3 2,5 4))
  • MULTIPOLYGON(((0 0,4 0,4 4,0 4,0 0),(1 1,2 1,2 2,1 2,1 1)), ((-1 -1,-1 -2,-2 -2,-2 -1,-1 -1)))
  • GEOMETRYCOLLECTION(POINT(2 3),LINESTRING((2 3,3 4)))
Selain dengan menggunakan kode program Python, kia dapat langsung melakukan konversi file shp dengan manggunakan command prompt dengan memanfaatkan fungsi shp2pgsql yang terdapat dalam instalasi PostgreSQL. Yaitu dengan cara di command prompt kita menuju folder bin dalam installan PostgreSQL kita. Kode perintah yang dapat digunakan untuk mengkonersi file shp seperti contoh diatas seperti ditampilkan di bawah ini:

shp2pgsql -g localhost -s 4532 -c -D -I D:/Virt/data/BatasKabupaten.shp geodata.BatasKabupaten | psql -U userwhn py_geo_db

Adapun bentuk umum kode konversi file shp diatas adalah:

shp2pgsql -g <host> -s <port> -c -D -I <lokasi file shp> <schema.tabel> | psql -U <user> <database>

Demikian tulisan singkat ini semoga bermanfaat dan akan dilanjutkan dengan bahasan selanjutnya, terima kasih. @wawanhn

Referensi: 
https://pcjericks.github.io/py-gdalogr-cookbook/vector_layers.html?highlight=shp#get-all-postgis-layers-in-a-postgresql-database

https://automating-gis-processes.github.io/CSC18/index.html


https://medium.com/@chrieke/essential-geospatial-python-libraries-5d82fcc38731


http://postgis.refractions.net/documentation/manual-1.3/ch04.html

Analisis Geospatial menggunakan Python Bagian 3 - Membuat Tabel di Database PostgreSQL

Add Comment
Setelah sebelumnya membuat database di PostgreSQL, saat ini akan ditampilkan cara:

  1. Membuat tabel
  2. Menginput data
  3. Menampilkan data
  4. Update data
  5. Menghapus data
Saat ini dalam contoh kode program ini saya akan menggunakan library psycopg2 merupakan library yang secara standar terinstall saat kita install python.

Membuat File koneksi ke database
"""

Created on Wed Apr 10 17:03:24 2019

@author: Wawan H Nur
Koneksi ke database di POstgreSQL
"""

import psycopg2
import Conf_postgresql as psql

PGHOST = "localhost"

PGDATABASE = "py_geo_db"

PGUSER = "userwhn"

PGPASSWORD = "pwdwhn"

PGSCHEMA = "geodata"

conn_string = "host="+ psql.PGHOST+ " port=" + "5432" + " dbname="+ psql.PGDATABASE + " user=" + psql.PGUSER+" password="+ psql.PGPASSWORD
            
conn = psycopg2.connect(conn_string)

print("Connection Success")

Membuat Tabel di Database
"""
Created on Wed Apr 10 17:08:57 2019

@author: Wawan HN
Membuat tabel di database py_geo_db dengan schema=geodata
"""

import psycopg2
import Connection_to_DB as con

connect = con.conn

cur = connect.cursor()
cur.execute('''CREATE TABLE '''+con.PGSCHEMA+'''.PERSON2 (ID INT PRIMARY KEY NOT NULL,
            NAME TEXT NOT NULL,
            AGE INT NOT NULL,
            ADRESS CHAR(50),
            SALARY REAL);''')

print("Table created successfuly")

connect.commit()
connect.close() 

Menginput data ke tabel di Database
"""
Created on Wed Apr 10 17:44:26 2019

@author: Wawan H Nur
Menambahkan data dalam tabel
"""

import psycopg2
import Connection_to_DB as con

connect = con.conn

cur = connect.cursor()

cur.execute("INSERT INTO " +con.PGSCHEMA+".COMPANY (ID, NAME, AGE, ADRESS, SALARY)\
            VALUES(3,'Bruce', '32', 'Ujungberung', 20000.00)");

cur.execute("INSERT INTO " +con.PGSCHEMA+".COMPANY (ID, NAME, AGE, ADRESS, SALARY)\
            VALUES(4,'Tony', '33', 'Bojongsoang', 30000.00)");

cur.execute("INSERT INTO " +con.PGSCHEMA+".COMPANY (ID, NAME, AGE, ADRESS, SALARY)\
            VALUES(5,'Dede', '32', 'Texas', 20000.00)");

cur.execute("INSERT INTO " +con.PGSCHEMA+".COMPANY (ID, NAME, AGE, ADRESS, SALARY)\
            VALUES(6,'Johny', '33', 'Cicaheum', 50000.00)");
            
connect.commit()
print("Records created succesfully")

connect.close()

Menampilkan data dari Tabel
"""
Created on Wed Apr 10 17:57:48 2019

@author: Wawan H Nur
Menampilkan data
"""

import psycopg2
import Connection_to_DB as con

connect = con.conn

cur = connect.cursor()

cur.execute("SELECT * FROM "+ con.PGSCHEMA +".company")

rows = cur.fetchall()
for row in rows:
    print("ID      = ", row[0])
    print("NAME    = ", row[1])
    print("AGE     = ", row[2])
    print("ADDRESS = ", row[3])
    print("SALARY  = ", row[4],"\n")

print("Operation done successfully")

connect.close()

Update data dalam suatu Tabel
"""
Created on Wed Apr 10 18:28:07 2019

@author: Wawan H Nur
Update data
"""

import psycopg2
import Connection_to_DB as con

connect = con.conn

cur = connect.cursor()

cur.execute("UPDATE " +con.PGSCHEMA+".COMPANY set SALARY = 25000.00 WHERE ID=2")
connect.commit()
print("Total number of rows updated: ", cur.rowcount)

cur.execute("SELECT * FROM "+ con.PGSCHEMA +".company")
rows = cur.fetchall()
for row in rows:
    print("ID      = ", row[0])
    print("NAME    = ", row[1])
    print("AGE     = ", row[2])
    print("ADDRESS = ", row[3])
    print("SALARY  = ", row[4],"\n")

print("Operation done successfully")

connect.close()

Menghapus data dari Tabel
"""
Created on Wed Apr 10 18:37:17 2019

@author: Wawan H Nur
Delete data
"""

import psycopg2
import Connection_to_DB as con

connect = con.conn

cur = connect.cursor()

cur.execute("DELETE FROM " +con.PGSCHEMA+ ".company  WHERE ID=2;")
connect.commit()
print("Total number of rows deleted: ", cur.rowcount)

cur.execute("SELECT * FROM "+ con.PGSCHEMA +".company")

rows = cur.fetchall()
for row in rows:
    print("ID      = ", row[0])
    print("NAME    = ", row[1])
    print("AGE     = ", row[2])
    print("ADDRESS = ", row[3])
    print("SALARY  = ", row[4],"\n")

print("Operation done successfully")

connect.close()

Demikian dulu tulisan ini, semoga bermanfaat. Silahkan tunggu untuk tulisan selanjunya @wawanhn

Refrensi: https://www.tutorialspoint.com/postgresql/postgresql_python.htm

Analisis Geospatial menggunakan Python Bagian 2 - Membuat Database di PostgreSQL

Add Comment
1. Buka command prompt dan menuju installan PostgreSQL misal foldernya terdapat di c:\Program Files\ PostgreSQL\9.3\bin\ 

2. Kemudian membuat user baru untuk database baru dengan menggunakan user postgres, dalam contoh ini saya akan buat username userwhn

C:\Program Files\PostgreSQL\9.5\bin>createuser.exe -U postgres -P userwhan

3. Kemudian kita diminta password dari role user userwhn misal saya masukan "pwdwhn", masukan sekali lagi dan selanjutnya masukan password user postgres yang sudah diset saat install PosgreSQL sebelumnya.



4. Buat database baru, contoh namannya py_geo_db:

createdb.exe -O userwhn -U postgres py_geo_db

masukan password dari user userwhn


5. Buat ektensi POSTGIS kedalam database py_geo_db:

psql -U postgres -d py_geo_db -c "CREATE EXTENSION postgis;" 

dan masukan password user postgres

6. Buat schema misalkan dengan nama geodata sehingga data tidak disimpan dalam schema public

psql.exe -U postgres -d py_geo_db -c "CREATE SCHEMA geodata AUTHORIZATION userwhn"

masukan password untuk user postgres

Maka kita telah berhasil membuat database di PostgreSQL, untuk melihat hasilnya dapat dilihat mengguanakan PgAdmin.

Semoga bermanfaat, dan dilanjutkan pada tulisan selanjutnya.




Menghapus File SHP menggunakan Python

Add Comment
Dengan menggunakan bahasa Python saya akan memberikan contoh kode program menggunakan bahasa Python untuk menghapus file shp. Dalam kode program ini membutuhkan library ogr. Berikut saya tampilkan contoh kode program tersebut.

Sebelumnya install dulu library ogr langkahnya seperti dalam Analisis Geospasial Bagian 1. Setelah selesai menginstal library ogr selanjutnya kita cek driver yang tersedia dalam library ogr. Sehingga kita dapa memastikan untuk dapat melakukan operasi terhadap file dengan format shapefile, PostgreSQL, FileGDB, SDE dll.

from osgeo import ogr



## CSV available?
driverName = "CSV"
drv = ogr.GetDriverByName( driverName )
if drv is None:
    print ("%s driver tidak tersedia.\n" % driverName)
else:

    print  ("%s driver tersedia.\n" % driverName)

## Shapefile available?
driverName = "ESRI Shapefile"
drv = ogr.GetDriverByName( driverName )
if drv is None:
    print ("%s driver tidak tersedia.\n" % driverName)
else:
    print  ("%s driver tersedia.\n" % driverName)

## PostgreSQL available?
driverName = "PostgreSQL"
drv = ogr.GetDriverByName( driverName )
if drv is None:
    print ("%s driver tidak tersedia.\n" % driverName)
else:
    print  ("%s driver tersedia.\n" % driverName)

## Is File GeoDatabase available?
driverName = "FileGDB"
drv = ogr.GetDriverByName( driverName )
if drv is None:
    print ("%s driver tidak tersedia.\n" % driverName)
else:
    print  ("%s driver tersedia.\n" % driverName)

## SDE available?
driverName = "SDE"
drv = ogr.GetDriverByName( driverName )
if drv is None:
    print ("%s driver tidak tersedia.\n" % driverName)
else:

    print  ("%s driver tersedia.\n" % driverName)


Dalam contoh ini saya akan menghapus sebuah file shapefile schools1.shp  yang terdapat dalam folder geodata. Berikut kode program tersebut:

from osgeo import ogr
import os

Driver_name = "ESRI Shapefile"
File_name = "../geodata/schools1.shp"
Driver = ogr.GetDriverByName(Driver_name)
if os.path.exists(File_name):
    Driver.DeleteDataSource(File_name)
    print ("Sukses menghapus file: "+ File_name)




Analisis Geospasial menggunakan Python Bagian 1

Add Comment
Saat ini saya akan berbagi tentang pemrograman menggunakan Python untuk Analisis Geospatial. Persipana yang kita lakukan adalah dengan menginstall beberap library yang dibutuhkan. Beberapa library dari Python yaitu: Numpy, pyproj, shapely, matplotlib dll.

Langkah yang kita lakukan adalah menginstall library-library tersebut daam contoh kali ini saya menggunakan pip dan anaconda.

Install Numpy
    $ pip install numpy

   untuk cek hasil install nummpy

   >> import numpy

Install Pyproj
       $ pip install pyproj

   untuk cek hasil install pyproj
       >>  import pyproj

Install Shapely
   $ pip install shapely

   atau link download  shapely disini

   untuk cek hasil install shapely

       >> import shapely

Install Matplotlib
       $ pip install matplotlib

   untuk cek hasil install 

   >> import matplotlib

Install Descartes
   $ pip install descartes 

   atau

   $ conda install descartes
   
   untuk cek hasil install

   >> import descartes

Install Pyshp
   $ pip install pyshp

   atau
   
   $ conda install pyshp

   untuk cek hasil install

   >> import shapefile

Install Geojson
   $ pip install geojson

   atau
   
   $ conda install geojson

   untuk cek hasil install

   >> import geojson

Install Pandas
   $ pip install pandas

   atau
   
   $ conda install pandas

   untuk cek hasil install

   >> import pandas

Install Scipy
   $ pip install scipy

   atau
   
   $ conda install scipy

   untuk cek hasil install

   >> import scipy

Install Pysal
   $ pip install pysal

   atau
   
   $ conda install pysal

   untuk cek hasil install

   >> import pysal



Install Django

   $ pip install django

   atau
   
   $ conda install django

   untuk cek hasil install

   >> import django

Secara umum library yang dibutuhkan untuk analisis spasial menggunakan Python ditampilkan dalam Tabel dibawah.



Library Name Deskripsi Keterangan
Numpy Mendukung perhitungan array dan matrik multi dimensi
pyproj Mendukung proyeksi Untuk melakukan transformasi proyeksi
shapely Mendukung operasi geospasial Untuk manipulasi dan operasi geometri secara dengan cepat
matplotlib Melakukan ploting data/membuat grapik Mendukung hasil visualisasi yang cepat
descartes Menggunakan objek shapely dan GeoJSOn Mendukung plot geo-data yang cepat
pandas Mendukung analisis data dan data terstruktur dengan performa tinggi Mendukung manipulasi data, mebuat CSV dan manipulasi data
scipy Mendukung pemrograman analisis saintifik perengkapan terbaik untuk analisis saintifik
paysal Mendukung analisis geospasial Mendukung operasi spasial
ipython Perangkat interaktif untuk pemrograman python Perangkat untuk penulisan skrip python
django Framework untuk aplikasi Web Untuk pemrograman web GIS
pyshp Mendukung manipulasi shapefile Mendukung input dan output shapefile
geojson Mendukung format JSON untuk data spasial data Mendukung perubahan dan publikasi data JSON
postgresql Database relational yang mendukung full data spasial Untuk menyimpan dan mengelola data spasial
postgis Merupakan ekstensi untuk pengolahan data spasial di Database PostgreSQL Mendukung menyimpanan dan pengolahan operasi terhadap data spasial di PostgresSQL

Pada tahap ini lakukan installasi terhadap library-library tersebut dan pada tulisan selanjutnya kita akan menggunakannya untuk analisis spasial.
Semoga bermanfaat dan tunggu tulisan selanjutnya. @wawanhn

Menjalankan Perintah Conda dengan Proxy di Anconda Prompt

Add Comment
Anaconda adalah aplikasi/distribusi open source untuk bahasa pemrograman Python dan R yang biasa digunakan untuk komputasi ilmiah (aplikasi pengolah data sain, machine learning, pengolah data skala besar, analisis prediksi dll). Dengan menggunakan paket anaconda memudahkan dalam programing Python dan R karena segala library di manage dalam sebuah paket serta memudahkan dalam mendistribusikan hasil paket pemrograman kita.

Jika kita menggunakan Anaconda, salah satu tools yang dapat digunakan adalag Anaconda Prompt, yang berfungsi layaknya command prompt namun lebih canggih dan berfungsi khusus dalam pemrograman Python atau R.

Dengan menggunakan perintah Conda kita dapat menginstall library-library Python dengan mudah layaknya menggunakan perintah dengan pip. Namun jika kita berada dalam jaringan yang menggunakan proxy, maka kadang terdapat masalah dalam menginstall library tersebut. Dengan demikian dalam Conda tersebut harus di setting proxy jaringan kita. Adapun perintahnya adalah sebagai berikut:

conda config --set proxy_servers.http http://id:pw@address:port

conda config --set proxy_servers.https https://id:pw@address:port

Dimana:

id diganti dengan user proxy, 
pw diganti dengan password,
address diganti dengan alamat proxy; dan
port diganti dengan nomor port jaringan proxy. 

Setelah di setting proxy maka kita dapat menginstall library python, sebagai contoh install shapely seperti berikut: > conda install shapely 



Terima kasih sudah menyimak semoga bermanfaat. @wawanhn

Python untuk Analisis Geospatial Bagian 4: Menggunakan Library Shapely untuk Analisis Sederhana

Add Comment
Pada bahasan ini saya akan membahas bagaimana jika kita ingin mengetahui atau analisis dari peta batas administrasi, dimana kit aingin mengetahui tetangga dari sebuah Kabupaten dari sebuah peta batas administrasi kabupaten. Dalam contoh bahasan saya menggunakan peta batas admnistrasi Propinsi Jawa Barat dalam bentuk polygon yang dapat di download disini.

Gambar diatas merupakan tampilan dari peta batas administrasi kabupaten yang ada di Propinsi Jawa Barat. Selanjutnya dengan menggunakan Python dan beberapa tekhnik yang sudah dipelajari sebelumnya kita akan mencoba membuat kode program untuk membaca tetangga dari setiap kabupaten dari peta tersebut.

Kemudian dengan menggunakan IDLE kita buat kode program python dengan nama baca_tetang_kabupaten.py seperti dibawah ini:

import ogr
import shapely.wkt

def main():
    shapefile = ogr.Open("D:\Master\Peta\BIG2016\export\Batas_Kab_Jawa_Barat.shp")
    layer = shapefile.GetLayer(0)

    kabupatens = {}

    for i in range(layer.GetFeatureCount()):
        feature = layer.GetFeature(i)
        kabupaten = feature.GetField("KABUPATEN")
        outline = shapely.wkt.loads(feature.GetGeometryRef().ExportToWkt())

        kabupatens[kabupaten] = outline

    print "Dalam file Batas_Kab_Jawa_Barat.shp terdapat %d kabupaten" % len(kabupatens)
    for kabupaten in sorted(kabupatens.keys()):
        outline = kabupatens[kabupaten]

        for kabupaten_lain in sorted(kabupatens.keys()):
            if kabupaten == kabupaten_lain: continue

            outline_lain = kabupatens[kabupaten_lain]

            if outline.touches(outline_lain):
                print"%s batas-batas %s" % (kabupaten, kabupaten_lain)
    
if __name__ == "__main__":
    main()

Dalam kode program tersebut, pertama kita membaca jumlah seluruh objek Kabupaten dan selanjutnya mengecek objek-objek kabupaten yang bersebtuhan dengan sebuah objek kabupaten yang dicari. Dilakukan untuk setiap objek kabupaten.
Setelah kita run kode program tersebut sehingga menghasilkan output seperti dibawah ini:


Hasil dari kode program tersebut adalah menampilkan setiap border atau tetangga dari setiap kabupaten dalam peta propinsi Jawa Barat. Tetangga kabupaten tersebut merupakan kabupaten yang bersentuhan langsung dengan objek suatu kabupaten. 



Python untuk Analisis Geospatial Bagian 3: Menggunakan Library Shapely untuk Membaca File WKT

Add Comment
File WKT (Well Know Text) merupakan teks markup language untuk merefresentasikan geometri objek vektor  dari sebuah peta, sistem referensi geometri (sstem kordinat) dan transformasi antar siste kordinat.

Dengan menggunakan library shapely, dari data WKT kita dapat mendapatkan data:

  • menghitung nilai tengah dari nilai geometri
  • mengitung batas dari geometri, yang menunjukan batas utara, selatan, timur dan barat dari sudut sebuah polygon.
  • menghitung intersection diantara dua geometri.
  • menghitung perbedaan diantara dua geometri.
  • dan menghitung luasan dari area dengan catatan file shp menggunakan sistem proyeksi (meter) bukan dalam format derajat.

Kali ini kita lanjutkan penggunaan library shapefile untuk membaca file WKT dari peta DesaIndonesia.shp. Langkahnya masih menggunakan IDLE python dan buat file baru dengan nama baca_shp_wkt.py kemudian ketikan kode program sebagai berikut:

import ogr
import shapely.wkt

shapefile = ogr.Open("D:\Master\Peta\DesaIndonesia.shp")
layer = shapefile.GetLayer(0)
feature = layer.GetFeature(0)
geometry =feature.GetGeometryRef()
wkt = geometry.ExportToWkt()
outline = shapely.wkt.loads(wkt)
X = outline.centroid.x
Y = outline.centroid.y
B = outline.bounds

print "X : ", X , "Y : ", Y
print "Boundary: ", B

Maka akan dihasilkan output sebagai berikut:


Penjelasan:

feature = layer.GetFeature(0)

Digunakan untuk mendapatkan feature nomor 0dan disimpan ke variable feature.

geometry =feature.GetGeometryRef()

Sintax tersebut digunakan untuk mendapatkan referensi geometri.

wkt = geometry.ExportToWkt()

Sintax untuk melakukan ekport ke file WKT dan disimpan di variabel wkt.

outline = shapely.wkt.loads(wkt)

Sintax untuk meload file wkt ke variabel outline.

X = outline.centroid.x
Y = outline.centroid.y
B = outline.bounds

Sintax untuk menyimpan nilai tengah x ke variabel X, nilaing tengah y ke variabel Y dan menyimpan nilai boundari dari feature ke 0 ke variabel B. Data boundary yang ditampilkan adalah nilai minimum longitud dan latitud serta nilai maksimum longitud dan latitud (berati, min_x, min_y, max_x, max_y).

print "X : ", X , "Y : ", Y
print "Boundary: ", B


Sintax untuk menampilkan nilai variabel ke layar.

<<Sebelumnya  Selanjutnya>>







Python untuk Analisis Geospatial Bagian 2: Menggunakan Library OGR untuk Membaca Data SHP

Add Comment
Setelah dalam bahasan sebelumnya mengenai persiapan Python dan library untuk mengakses data spasial dilakukan pada tulisan

"Python untuk Analisis Geospatial Bagian 1: Install Library GDAL dan Shapely di Windows"


Langkah selanjunya adalah menggunakan library GDAL/OGR dan Shapely untuk mengakses data spatial. Sebelum kita melanjutkan ke contoh program dengan python, pertama kita harus mengenal mengenal data spasial yang akan kita olah disini.

"Mengenal Data Spasial"


Tools yang akan kita gunakan dalam contoh dibawah nanti adalah IDLE sebagai text editor bawan dari instalan Python. Langkah-langkah yang akan kita lakukan sebagai berikut:

  • Persiapan data saya menggunakan data administrasi BIG yang dapat didownload disini.
  • Buka aplikasi IDLE dari start menu
  • Kemudian di IDLE buka menu File-> New File dan ketikan kode perintah:
import ogr

shapefile = ogr.Open("D:\Master\Peta\DesaIndonesia.shp")
layer = shapefile.GetLayer(0)
for i in range(layer.GetFeatureCount()):
    feature = layer.GetFeature(i)
    feature_name = feature.GetField("KECAMATAN")
    geometry = feature.GetGeometryRef()
    geometry_type = geometry.GetGeometryName()
    print i, feature_name, geometry_type


  • Kemudian pilih menu Run -> Run Module atau dengan shortcut F5, untuk melakukan eksekusi program, jika berhasil maka di wondows baru ditapilkan seperti gambar dibawah.

  • Penjelasan kode program diatas adalah
import ogr

Sintak tersebut untuk mengimport librarry OGR yang merupakan library dari OSGEO yang dibuat untuk menulis dan membaca data vektor.

shapefile = ogr.Open("D:\Master\Peta\DesaIndonesia.shp")

Sintax diatas untuk membuka file DesaIndonesia.shp menggunakan library OGR.

layer = shapefile.GetLayer(0)

Sintax ini digunakan untuk menyimpan variable shapefile dalam sebuah datasource di libarry OGR, dimana datasource OGR dapat membaca beberapa informasi layer. Namun dalam contoh hanya terdapat 1 layer, dan kita mengakses 1 layer.

for i in range(layer.GetFeatureCount()):
    feature = layer.GetFeature(i)

Sintax tersebut digunakan untuk melakukan iterasi terhadap feature yang terdapat dalam shapefile, dan iterasi dilakukan untuk semua feature di file tersebut.

feature_name = feature.GetField("KECAMATAN")

Sintax tersebut untuk mendapatkan string dari field / kolom / atribut  "KECAMATAN", dimana dalam file DesaIndonesia.shp tersebut terdapat kolom yang bernama KECAMATAN, dan ingat cara menulisnya harus sama anatara penggunaan huruf besar dan kecil karena penamaan tersebut bersifat case sensitive.

geometry = feature.GetGeometryRef()

Sintax tersebut digunakan untuk mendapatkan referensi geometri.

geometry_type = geometry.GetGeometryName()

Sintax tersebut digunakan untuk mendapatkan jenis geometry dari DesaIndonesia.shp.

print i, feature_name, geometry_type

Sintax tersebut untuk mencetak nilai i (urutan dari 0 sampai data terakhir), nama kecamatan dan jenis geometri dari file DesaIndonesia.shp.

Demikianlah tulisan ini untuk melanjutkan klik

<<Sebelumnya     Selanjutnya>>