0% menganggap dokumen ini bermanfaat (0 suara)
8 tayangan19 halaman

Module Day 1 - Advanced Network Analysis

Bab pertama pelatihan ini memperkenalkan dasar-dasar pemrograman Python, termasuk instalasi dan penggunaan Jupyter Notebook serta berbagai modul Python untuk analisis spasial. Python dipilih karena popularitas, kemudahan penggunaan, dan dukungan untuk data geospasial melalui pustaka seperti GeoPandas, GDAL/OGR, PyQGIS, dan Folium. Selain itu, panduan instalasi Anaconda dan pengaturan lingkungan Python juga disediakan untuk memfasilitasi penggunaan alat-alat tersebut.

Diunggah oleh

fajar witama wijaya
Hak Cipta
© All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
8 tayangan19 halaman

Module Day 1 - Advanced Network Analysis

Bab pertama pelatihan ini memperkenalkan dasar-dasar pemrograman Python, termasuk instalasi dan penggunaan Jupyter Notebook serta berbagai modul Python untuk analisis spasial. Python dipilih karena popularitas, kemudahan penggunaan, dan dukungan untuk data geospasial melalui pustaka seperti GeoPandas, GDAL/OGR, PyQGIS, dan Folium. Selain itu, panduan instalasi Anaconda dan pengaturan lingkungan Python juga disediakan untuk memfasilitasi penggunaan alat-alat tersebut.

Diunggah oleh

fajar witama wijaya
Hak Cipta
© All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd

Pelatihan Advanced Network Analysis

dengan Python – Bab 1


A. Tujuan Pembelajaran
Bab pertama menyajikan informasi dasar yang penting untuk memulai pemrograman
dengan Python. Dalam bab ini, diperkenalkan konsep-konsep dasar terkait komputer dan
pemrograman, serta penjelasan mengenai lingkungan pemrograman yang digunakan dalam
pelatihan ini, termasuk panduan menginstal Python di perangkat Anda.
Pada akhir bab ini, Anda diharapkan mampu:
Menjelaskan mengapa Python merupakan bahasa pemrograman yang penting untuk
dipelajari.
Menguraikan berbagai cara menjalankan program Python, termasuk penggunaan
Jupyter Notebook dalam pelatihan ini.
Mengoperasikan Jupyter Notebook secara online dan menginstal Python di komputer
Anda.
Mengenali serta menggunakan berbagai modul Python seperti GeoPandas,
GDAL/OGR, PyQGIS, dan Folium untuk melakukan analisis spasial.

B. Pendahuluan

B.1. Mengapa Python?

Dalam dunia bahasa pemrograman, terdapat ratusan pilihan, jadi mungkin Anda bertanya-
tanya mengapa memilih Python dalam training ini. Ada beberapa alasan mengapa Python
adalah salah satu bahasa pemrograman terbaik untuk dipelajari.
1. Python banyak digunakan. Mungkin ini tidak terlihat seperti alasan yang cukup kuat
untuk mengajarkan bahasa pemrograman, tetapi popularitas Python adalah aset besar.
Mengapa? Karena banyaknya pengguna Python, berbagai sumber daya berkualitas tinggi
dapat ditemukan di internet yang berkaitan dengan praktik pemrograman Python, kesalahan
umum, contoh kode, dan lainnya. Dalam banyak kasus, cukup menyalin pesan kesalahan
dari program Python ke mesin pencari favorit, dan puluhan posting serta balasan dari
pengguna yang menghadapi kesalahan serupa dapat ditemukan. Bahkan, sering kali ada
solusi untuk membantu menyelesaikan kesalahan tersebut!
2. Python gratis. Ada beberapa ungkapan yang sering digunakan terkait perangkat lunak:
"gratis tanpa biaya" dan "gratis seperti kebebasan berbicara". Sesuatu yang "gratis tanpa
biaya" berarti tidak memerlukan biaya untuk menggunakannya, sementara sesuatu yang
"gratis seperti kebebasan berbicara" berarti tidak ada batasan dalam penggunaannya.
Python adalah keduanya, dan ini adalah atribut penting lainnya dari bahasa ini. Python
adalah bahasa pemrograman sumber terbuka dengan komunitas pengguna yang telah
membuat banyak ekstensi yang disebut "libraries". "Libraries" ini memungkinkan
pengguna untuk mengakses potensi penuh bahasa Python tanpa biaya. Ini berbeda dengan
beberapa bahasa lain yang digunakan di bidang ilmu alam, seperti MATLAB, yang
mungkin gratis untuk penggunaan mahasiswa, tetapi memerlukan lisensi komersial untuk
penggunaan non-akademik.
3. Python mudah dipahami. Apa maksudnya? Maksudnya adalah bahwa ambang batas
untuk memulai penggunaan Python cukup rendah. Python adalah bahasa pemrograman
yang dikenal sebagai bahasa interpretatif, yang berarti perintah-perintah diberikan ke
interpreter yang membaca dan mengeksekusi kode secara langsung. Artinya kita bisa
mengetik perintah ke interpreter Python seperti 1 + 1 dan ketika menekan tombol Enter,
perintah itu akan dieksekusi oleh interpreter dan kita akan melihat hasilnya, yaitu 2. Selain
itu, Python menyediakan error message yang jelas dan rinci, yang membantu pengguna
memperbaiki program dengan efisien. Inilah yang membuat Python mudah dipahami,
karena beberapa bahasa pemrograman lain mungkin hanya memberikan pesan kesalahan
yang minim dengan sedikit atau tanpa petunjuk mengenai bagian mana dalam kode yang
bermasalah.
4. Python terhubung (connected). Python adalah salah satu bahasa pemrograman yang
sering tersedia sebagai ekstensi di banyak perangkat lunak ilmiah. Perangkat lunak Sistem
Informasi Geografis (SIG) seperti QGIS atau ArcGIS kini menyertakan interpreter Python
yang terintegrasi dalam perangkat lunak tersebut, sehingga Anda dapat menggunakan
Python untuk berinteraksi dengan data spasial Anda.
B.2. Apa Itu Jupyter Notebook?
Jupyter Notebook adalah aplikasi web asli yang dirancang untuk membuat dan
membagikan dokumen komputasi. Aplikasi ini menawarkan pengalaman yang sederhana,
terfokus pada dokumen, dan terpadu. Jupyter Notebook menggabungkan source code dengan
rich-text documentation, persamaan, gambar, dan grafik dalam satu dokumen interaktif. File
Jupyter Notebook memiliki ekstensi *. ipynb dan terbagi menjadi beberapa sel. Setiap sel dapat
berisi source code atau documentation. Jenis sel yang paling umum digunakan adalah sel Code
untuk menulis program (mendukung berbagai bahasa pemrograman, termasuk Python) dan sel
Markdown untuk membuat teks terformat menggunakan bahasa markup. Untuk mengakses
Jupyter Notebook, dokumen ini harus di-host di server, baik secara lokal maupun jarak jauh
(remotely), dan diakses melalui web browser.

Referensi ke artikel ilmiah atau sumber data dapat dimasukkan ke dalam notebook,
menciptakan dokumen yang mandiri dan dapat direproduksi. Hal ini memungkinkan siapa pun
untuk memahami dengan jelas bagaimana analisis dilakukan dan, jika diinginkan,
mengulanginya sendiri.
B.3. Libraries Python

Dalam dunia pemrograman, perpustakaan (library) adalah kumpulan kode yang sudah
dikompilasi sebelumnya dan dapat digunakan kembali dalam program untuk melakukan
operasi tertentu yang sudah didefinisikan dengan jelas. Selain kode yang sudah dikompilasi,
sebuah library juga dapat berisi dokumentasi, data konfigurasi, template pesan, kelas, dan nilai-
nilai lainnya.
Library Python adalah kumpulan modul yang saling terkait. Library ini berisi kumpulan
kode yang dapat digunakan berulang kali di berbagai program. Dengan adanya library,
pemrograman Python menjadi lebih sederhana dan praktis karena kita tidak perlu menulis
ulang kode yang sama untuk program yang berbeda. Library Python sangat penting dalam
berbagai bidang, seperti Machine Learning, Data Science, dan visualisasi data.
Geopandas
Geopandas adalah salah satu pustaka Python yang paling populer untuk bekerja dengan
data geospasial. Pustaka ini menggabungkan kekuatan Pandas untuk manipulasi data tabular
dengan kemampuan Shapely untuk mengolah geometri. Geopandas memungkinkan Anda
untuk:
• Membaca dan menulis berbagai format data geospasial: Shapefile, GeoJSON, KML,
dan banyak lagi.
• Melakukan operasi spasial: Menggabungkan, memotong, dan melakukan analisis
spasial lainnya.
• Memvisualisasikan data geospasial: Menggunakan berbagai pustaka plotting seperti
Matplotlib dan Folium.
GDAL/OGR
GDAL (Geospatial Data Abstraction Library) adalah pustaka C/C++ yang menyediakan
antarmuka untuk membaca dan menulis berbagai format raster dan vektor. OGR adalah bagian
dari GDAL yang khusus menangani data vektor. Dalam Python, GDAL/OGR sering digunakan
melalui pustaka Fiona. Fiona menyediakan antarmuka yang lebih Pythonic untuk mengakses
data geospasial yang didukung oleh GDAL.
PyQGIS
PyQGIS adalah antarmuka Python untuk QGIS, sebuah Sistem Informasi Geografis (SIG)
yang populer. PyQGIS memungkinkan Anda untuk mengontrol QGIS dari Python, sehingga
Anda dapat melakukan berbagai tugas seperti:
• Membaca dan menulis data geospasial
• Melakukan analisis spasial
• Membuat peta interaktif
• Mengotomatiskan tugas-tugas GIS
Folium
Folium adalah pustaka Python yang memungkinkan Anda untuk membuat peta interaktif
berbasis [Link]. Folium sangat mudah digunakan dan dapat diintegrasikan dengan baik
dengan Geopandas. Anda dapat dengan mudah membuat peta yang menunjukkan data spasial
Anda dan menambahkan berbagai layer, marker, dan kontrol interaktif.
Library Fungsi Utama Keunggulan
Geopandas Manipulasi dan analisis data Mudah digunakan, integrasi
vector. dengan Pandas.
GDAL/OGR Membaca dan menulis Fleksibel, banyak format
berbagai format data yang didukung.
geospasial.
PyQGIS Kontrol penuh atas QGIS. Fitur GIS yang lengkap,
pembuatan peta interaktif.
Folium Membuat peta interaktif. Mudah digunakan, integrasi
dengan Geopandas.

C. Alat dan Bahan


Alat yang digunakan sebagai berikut.
1). Komputer/Laptop
2). Anaconda Navigator Python 3.12: untuk mengatur lingkungan Python, menginstal Jupyter
Notebook, dan pustaka lainnya.
3). Jupyter Notebook
Data yang digunakan sebagai berikut.
1). Dataset Geospasial :
• Vektor: Shapefile Batas_Desa.shp dan INDONESIA_PROP.shp manipulasi data
vector.
• Raster: File raster seperti qb2015_low.tif untuk manipulasi citra.
• Data CSV tahun 2009–2018 tentang lokasi dan magnitudo gempa bumi.

D. Pelaksanaan

D.1. Instalasi dan Pengaturan Lingkungan (Environment) Python


Anaconda adalah sebuah paket lengkap untuk pemrograman dengan Python, khususnya
untuk bidang Data Science. Sebagaimana kita ketahui, Python memiliki ribuan modul yang
dapat diinstall untuk berbagai keperluan. Anaconda menyediakan beberapa modul Python yang
paling sering digunakan untuk keperluan pengolahan data, berikut dengan perangkat seperti
IDE dan Jupyter Notebooks yang dapat digunakan untuk melakukan editing script Python pada
satu environment tertentu. Langkah-langkah melakukan instalasi dan pengaturan environment
python sebagai berikut.

1. Melakukan instalasi Anaconda Navigator melalui link :


[Link] Saat ini, versi Anaconda terbaru adalah
Anaconda 3 yang akan menginstall Python versi 3.12. Unduh versi ini untuk diinstall pada
komputer Anda. Lakukan instalasi sesuai dengan pengaturan yang direkomendasikan.
2. Setelah Anaconda sukses terinstall, buka Anaconda Prompt pada menu utama.

Shell ini akan menjadi antarmuka utama yang digunakan untuk berinteraksi dengan modul-
modul Python, termasuk melakukan instalasi modul baru yang dibutuhkan nantinya.

3. Pindahkan direktori aktif ke folder yang mudah digunakan. Folder ini akan menyimpan
berbagai berkas .ipynb yang akan kita buat menggunakan Jupyter Notebook nantinya. Pada
contoh ini akan digunakan folder C:\Users\BVT\Project.

Perintah mkdir dan cd adalah perintah Command Prompt pada Windows untuk membuat
direktori baru serta masuk ke direktori tersebut. Sesuaikan drive dan direktori yang digunakan
dengan kebutuhan.
4. Untuk membuat sebuah environment baru, gunakan perintah berikut:
conda create --name python312 python=3.12
Akan muncul keterangan mengenai modul dasar yang perlu diinstal sesuai dengan versi Python
3.12. Pada pertanyaan yang muncul, ketik ' y ' untuk melakukan konfirmasi, kemudian tekan
Enter.
5. Setelah proses instalasi environment selesai, kita tidak akan langsung diarahkan ke
environment tersebut. Untuk mengaktifkannya, kita perlu menggunakan perintah yang
tersedia di command prompt:
conda activate python312

Dapat kita lihat bahwa indikator environment telah berubah menjadi (python38) . Artinya kita
telah berada pada environment baru yang siap diisi dengan modul-modul yang kita perlukan.
Untuk menonaktifkan environment ini dan kembali pada (base), gunakan perintah:
conda deactivate

D.2. Instalasi Jupyter Notebook dan Jupyter Lab


Di bagian ini, kita akan menginstal Jupyter Lab dan Jupyter Notebook. Buka kembali
Anaconda Prompt yang sebelumnya sudah dikonfigurasi dengan environment Python 3.12.
1. Untuk melakukan instalasi Jupyter Lab, ketikkan perintah berikut pada Anaconda Prompt:
pip install jupyterlab dan pip install notebook
Tunggu hingga proses instalasi selesai, lalu masukkan perintah berikut untuk menjalankan
Jupyter Lab. Jupyter akan secara otomatis terbuka pada browser default Anda.
jupyter-lab

Untuk menutup Jupyter Lab dan mematikan server, dapat digunakan menu File > Shutdown.
2. Anda juga bisa menjalankan versi Notebook dari Jupyter Lab yang telah diinstal. Cukup
gunakan perintah:
jupyter-notebook
dan jendela Jupyter Notebook akan terbuka seperti berikut:

D.3. Instalasi dan Pengolahan Data Geospasial dengan Berbagai Library


Python

D.3.1. Geopandas

Geopandas dapat dikatakan merupakan versi Pandas yang khusus untuk menangani data
spasial. Seluruh fungsi Pandas yang kita kenal dapat juga digunakan pada Geopandas, sehingga
dapat melakukan slicing, seleksi data, query, dan seterusnya. Berikut adalah langkah-langkah
untuk melakukan instalasi dan pengolahan Network Analysis menggunakan Geopandas.
1. Sebelum mengolah data menggunakan Geopandas, langkah pertama yang perlu dilakukan
adalah menginstal Geopandas pada environment yang Anda miliki. Gunakan perintah
berikut untuk melakukan instalasi:
conda install geopandas
2. Conda akan mengumpulkan modul-modul yang dibutuhkan dan secara otomatis menginstal
Geopandas pada perangkat Anda. Setelah proses instalasi selesai, Geopandas dapat
digunakan di Jupyter dengan memanggilnya menggunakan perintah berikut:
import geopandas as gpd
import pandas as pd

3. Execute code berikut di Jupyter Notebook.


# In python for building with Geopandas, you can install Geopandas in
jupyter notebook with environmental Anaconda. Let’s go to try it!

import geopandas as gpd


import pandas as pd
import numpy as np
import [Link] as plt

# Import data shp


indo = gpd.read_file("Training Dataset/Geopandas/INDONESIA_PROP.shp")
[Link]()

# Now, you can try visualization with polygon data, with package
geopandas make visualization so easy.
[Link](column='Propinsi', cmap='Set1', legend=True, figsize = (30,40))
[Link]('TITIK GEMPA')
[Link]()

# Filter Geopandas
# We are selecting regions: "SUMATERA UTARA", "SUMATERA BARAT", "JAWA
TENGAH", "DI. ACEH", "JAWA TIMUR", "JAWA BARAT", "DKI JAKARTA", "RIAU",
"JAMBI", "BANGKA BELITUNG", "SUMATERA SELATAN", and "DAERAH ISTIMEWA
YOGYAKARTA". These regions have been filtered from the dataset for
further analysis.

# get data
geo_df = gpd.read_file("Training Dataset/Geopandas/INDONESIA_PROP.shp")

# data can get


filter_sumatra_jawa = [ "SUMATERA UTARA", "SUMATERA BARAT","JAWA
TENGAH","DI. ACEH","JAWA TIMUR","JAWA BARAT","DKI JAKARTA","RIAU",
"JAMBI","BANGKA BELITUNG" ,"SUMATERA SELATAN","DAERAH ISTIMEWA
YOGYAKARTA"]
ori_len = len(geo_df)
geo_df['Wilayah'] = list(range(len(geo_df)))

# filter data
for i in range(ori_len):
if geo_df['Propinsi'][i] in filter_sumatra_jawa :
geo_df['Wilayah'][i] = 1
else:
geo_df['Wilayah'][i] = 0
geo_df = geo_df[geo_df['Wilayah'] == 1]
geo_df.head()

# Visualization
leg_kwds = {'title':'NAMA WILAYAH', 'loc':'upper
left','bbox_to_anchor':(1,1.05), 'ncol':1}
geo_df.plot(column='Propinsi', cmap='Set1', legend=True, legend_kwds =
leg_kwds, figsize = (20,50))
[Link]('TITIK GEMPA')
[Link]()

# Spatial Points and Spatial Polygons


# In this visualization, we will use earthquake data. This dataset
contains coordinates (latitude and longitude). By combining these two
variables, we can plot spatial points on a map to visualize the
earthquake locations.

train_09 = pd.read_csv('Training Dataset/Geopandas/[Link]')


train_10 = pd.read_csv('Training Dataset/Geopandas/[Link]')
train_11 = pd.read_csv('Training Dataset/Geopandas/[Link]')
train_12 = pd.read_csv('Training Dataset/Geopandas/[Link]')
train_13 = pd.read_csv('Training Dataset/Geopandas/[Link]')
train_14 = pd.read_csv('Training Dataset/Geopandas/[Link]')
train_15 = pd.read_csv('Training Dataset/Geopandas/[Link]')
train_16 = pd.read_csv('Training Dataset/Geopandas/[Link]')
train_17 = pd.read_csv('Training Dataset/Geopandas/[Link]')
train_18 = pd.read_csv('Training Dataset/Geopandas/[Link]')
train_all =
[train_09,train_10,train_11,train_12,train_13,train_14,train_15,train_16,
train_17,train_18 ]

# replaces the name of each data


for i in train_all:
[Link] = ['index', 'Date', 'Time', 'Latitude',
'Longitude','Depth',
'Magnitude', 'TypeMag', 'smax', 'smin', 'az', 'rms',
'cPhase',
'Region']
[Link](0,axis=0,inplace=True)

# unify the data into 1


train = [Link](train_all)
[Link]()

# Change format data to float and filter for Indonesia country.

import pandas as pd

#convert type data to float


columns = ['Latitude','Longitude', 'Depth', 'Magnitude']
for var in columns:
train[var] = train[var].astype("float64")

# Filter indonesia
train = [Link][((train['Latitude'] >= -12.5) & (train['Latitude'] <=
7) & (train['Longitude'] >= 94.31644) & (train['Longitude'] <=
142.71813) )]

# Visualization of spatial data with background polygon data and


coordinate data.
leg_kwds = {'title':'NAMA WILAYAH', 'loc':'upper left',
'bbox_to_anchor':(1,1.05), 'ncol':1}
geo_df.plot(column='Propinsi', cmap='Set1', legend=True, legend_kwds =
leg_kwds, figsize = (30,30))
[Link]('TITIK GEMPA')
[Link](y= [Link], x = [Link] , c = [Link],
alpha=0.8);
[Link]()

# Analysis Network Station Seismic with Earthquake


# To do an earthquake station network analysis with an earthquake, the
first stage we have to determine the earthquake station itself because
the data is not known the location of the station. To determine the
location of the station we assume that earthquakes that have a “smin” of
less than 0.3 are earthquakes that are close to the seismic station.
# note: “smin” is the distance of the earthquake to the nearest station

train_loc = [Link]()
train_loc = train_loc[train_loc.smin < 0.3]
leg_kwds = {'title':'NAMA WILAYAH', 'loc':'upper left',
'bbox_to_anchor':(1,1.05), 'ncol':1}
geo_df.plot(column='Propinsi', cmap='Set1', legend=True, legend_kwds =
leg_kwds, figsize = (30 ,30))
[Link]('TITIK GEMPA')
[Link](y= train_loc.Latitude, x = train_loc.Longitude, alpha=0.8);
[Link]()

# After knowing the distribution of earthquake data close to the station.


we must determine the exact point at the earthquake station, therefore we
use K-means clustering to determine that point.

from [Link] import KMeans

# Select Latitude and Longitude columns for clustering


train_clus = train_loc[['Latitude', 'Longitude']].copy() # Use .copy()
to avoid the warning
num_clusters = 152

# Initialize KMeans
km = KMeans(n_clusters=num_clusters, random_state=1)
[Link](train_clus)

# Get the cluster labels


clusters = km.labels_.tolist()
train_clus.loc[:, 'Clustering'] = clusters

# Calculate the mean of each cluster (centroid location)


loc_station = train_clus.groupby('Clustering').mean()
loc_station = loc_station.reset_index()

loc_station.head()

# Visualization result :

leg_kwds = {'title':'NAMA WILAYAH', 'loc':'upper left',


'bbox_to_anchor':(1,1.05), 'ncol':1}
geo_df.plot(column='Propinsi', cmap='Set1', legend=False, legend_kwds =
leg_kwds, figsize = (30,30))
[Link]('Lokasi Stasiun Gempa')
[Link](y= loc_station.Latitude, x = loc_station.Longitude,
marker='^', alpha=1, c = '#1f77b4');
[Link]()
D.3.2. GDAL/OGR

GDAL/OGR adalah pustaka yang sangat berguna untuk menangani data geospasial di Python.
GDAL menangani data raster, sedangkan OGR menangani data vektor. Dengan menggunakan
pustaka ini di Python, Anda dapat membaca, menulis, dan memanipulasi berbagai format data
geospasial secara efisien. Berikut adalah cara menginstal dan contoh penggunaannya.
Selain perintah-perintah GDAL yang berfungsi untuk manipulasi data raster, GDAL juga kini
dilengkapi dengan daftar perintah OGR yang digunakan untuk manipulasi data vektor. Daftar
lengkap dari perintah-perintah GDAL pada Python API dapat dilihat pada alamat berikut:
[Link]
1. Lakukan instalasi GDAL dengan perintah sederhana:
conda install gdal

2. Untuk memastikan GDAL telah terinstal, kita bisa memanggil GDAL dari library OSGEO
dengan mengetikkan kode berikut pada sel pertama di Jupyter Notebook.
from osgeo import gdal

Kemudian jalankan cell tersebut dengan menekan Ctrl+Enter. Selanjutnya, ketikkan kode
berikut pada cell di bawahnya.
print(gdal.__version__)

Berikut adalah tampilan dari kedua cell yang telah dijalankan.

3. Execute code berikut di Jupyter Notebook.


# ## Reading Scientific Data Formats
# Once we have the data for practice, we will try using some basic GDAL
commands on these datasets. To start, we will first check the metadata of
the provided raster and vector data.

# open image file


citra = [Link]("Training Dataset/GDAL/citra/qb2015_low.tif")

# To view the metadata of the image, use the gdalInfo() command.


print([Link](citra))

# open shp file


shp = [Link]("Training Dataset/GDAL/shp/Batas_Desa.shp")

# Now we will try to retrieve the metadata information of the shapefile


using GDAL/OGR.
get_ipython().system('ogrinfo -al -ro -so "Training
Dataset/GDAL/shp/Batas_Desa.shp"')

# ## Vector Data Manipulation with GDAL/OGR


# memanggil OGR dari OSGEO
from osgeo import ogr
import os

# definisi path data shp batas desa


file_shp_desa = [Link]("Training Dataset/GDAL/shp/Batas_Desa.shp")

# memanggil driver shapefile


driver = [Link]('ESRI Shapefile')

# membuka file shp dengan driver


batasdesa = [Link](file_shp_desa)
batasdesa

layer = [Link](0)
layerDefinition = [Link]()

# iterations on all columns (fields)


for i in range([Link]()):
print([Link](i).GetName())

# SetAttributeFilter() function applies a query to the layer, allowing


you to select the desired features.
[Link]('KEC_2008 = TURI')

for feature in layer:


print([Link]('DESA_2008'))
[Link]()

# Another thing we can do is create a Spatial Query using a Well-Known


Text (WKT) definition.
wkt_point = 'POINT(433910.22 9142454.34)' # WKT point
geom_point = [Link](wkt_point)
[Link](geom_point)
for feature in layer:
print([Link]('DESA_2008'))
[Link]()
wkt_poly = 'POLYGON ((431993.017 9142371.491 0,434484.623 9142398.871
0,435169.131 9140537.011 0,433252.51 9139907.265 0,432294.2 9140947.716
0,431993.017 9142371.491 0))'

# create geometry from WKT


geom_poly = [Link](wkt_poly)

# mapplying spatial filters to the village boundary layer


[Link](geom_poly)
for feature in layer:
print([Link]('DESA_2008'))
[Link]()

ring = geom_poly.GetGeometryRef(0)
for i in range([Link]()):
print(i, [Link](i), [Link](i))

# Geometry conversion from WKT to shp.


# Saving geometry converted from WKT to Shapefile
import [Link] as ogr
import [Link] as osr

# Setting the shapefile driver


driver = [Link]("ESRI Shapefile")

# Creating a data file


data_source = [Link]("polygon_seleksi.shp")

# Defining the projection system, here we use UTM Zone 49S


srs = [Link]()
[Link](32749)

# Creating a layer (initially empty)


layer = data_source.CreateLayer("polygon_seleksi", srs, [Link])

# Creating fields (dummy for now)


field_name = [Link]("Name", [Link])
field_name.SetWidth(24)
[Link](field_name)
[Link]([Link]("Number", [Link]))

# Feature definition taken from the created layer


feature = [Link]([Link]())

# Setting attributes with arbitrary values


[Link]("Name", "Selection Polygon")
[Link]("Number", 123)

# Adding geometry to the new feature using geom_poly


[Link](geom_poly)

# Adding the feature to the layer


[Link](feature)

# Closing the feature and data file after the process is complete
feature = None
data_source = None

# ## Raster Data Manipulation with GDAL/OGR


band = [Link](1)
band

data = [Link]()
print(data)

# Since this is a MATRIX, we can process the data just like we would with
a regular matrix:
data = data+50
data[data < 45] = 0
print(data)

# Using GDAL, we can create a new file with the modified band values
drv = [Link]('GTiff')
outRaster = [Link]('Training Dataset/GDAL/band_baru.tif', citra,
0)
newBand = [Link](1)
[Link](data)
outRaster = None

Anda mungkin juga menyukai