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

Konversi File PDF ke Excel secara Online

Add Comment
Bagi yang memerlukan tool untuk mengkonversi file pdf ke excel, saat ini dapat dilakukan secara online dengan menggunakan aplikasi secara online menggunakan browser. Salah satu web yang menyediakan aplikasi ini adalah

https://www.pdftoexcel.com/id

Cara melakukan konversi adalah dengan mengupload file pdf yang akan di konversi dan tunggu konversi secara online, kemudian setelah konversi sukses dilakukan maka kita dapat mendownload hasil konversi dalam format excel yang sudah dilakukan.


Namun satu yang harus di ketahui, karena aplikasi tersebut dalam bentuk online dimana data kita tersebar secara bebas. Jadi mohon lebih bijak jika data yang akan dikonevrsi merupakan data penting sebaiknya jangan menggunakan fasilitas ini.

Semoga bermanfaat. @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

Mengekstrak Nilai dari Beberapa Raster ke sebuah Layer Point

1 Comment
Melanjutkan tulisan

Konversi Raster ke Point di ArcGIS

kita akan membuat sebuah layer bertipe point dalam hal ini layer point yang berisi nilai curah hujan untuk tiap-tiap bulan yang didapatkan dari file raster curah hujan Chirps.

Penjelasan dari tulisan yang akan dibuat adalah sebagai berikut:
  1. Saya punya banyak data raster chirps perbulan untuk beberapa tahun (data chirps sudah saya download dari website Chirps). Misal saya download untuk data bulanan.
  2. Kemudian crop atau clip data raster chirps untuk beberapa tahun yang sudah didownload sebelumnya untuk lokasi tertentu,  Lihat 

    Memotong Banyak Raster dengan Polygon di ArcGIS Sekaligus

  3. Kemudian kita buat layer bertipe point yang berisi nilai curah hujan dari raster Chirps bulanan seperti di tulisan 

    Konversi Raster ke Point di ArcGIS

  4. Kemudian dalam tulisan ini kita akan mengekstrak nilai curah hujan perbulan dari file-file raster chirps untuk beberapa tahun ke dalam layer bertipe point.
Langkah yang dilakukan adalah dengan mengguanakan fungsi Extract Multi Values to Points dari toolbox Spatial Analyst Tools -> Extraction, kemudian setting windows fungsi Extract Multi Values to Points.

Input Point Feature  : tentukan layer point yang akan dimasukan nilai curah hujan dari raster chirps
Input Rasters             : tentukan raster-raster yang akan diekstrak nilai curah hujannya

Kemudian tentukan Output field name untuk setiap nilai raster yang diekstrak, maksdunya adalah tentukan nama kolom atau field dari setiap nilai curah hujan yang diekstrak. Sebagai contoh dalam tulisan ini akan mengekstrak nilai curah hujan bulanan dari raster chirps, dengan demikian tentukan nilai kolom nama tahun dan bulan.


Setalh selesai seting klik OK dan tunggu hasil proses, jika tidak ada kesalahan maka akan dihasilkan berupa layer point yang terdapat nilai-nilai curah hujan dari file-file raster chirps di dalam atribut tabelnya seperti gambar di bawah...


Sangat mudah dan sangat membantu pekerjaan analisis kita kan?.... Semoga tulisan sederhana ini dapat bermanfaat dan terima kasih sudah menyimak. @wawanhn