Modul Pelatihan ArcGIS Notebook

Daftar isi

Modul Pelatihan ArcGIS Notebook Daftar isiPengantarTentang Panduan iniJadwal PelatihanLisensi Dokumen Lisensi Perangkat LunakDaftar LatihanPendahuluanReview Pemrograman PythonPemrograman Python pada ArcGISBagian I: Konsep ArcGIS Notebook ServerI.1. ArcGIS Enterprise dan ArcGIS Notebook Server I.2. Jupyter NotebookLatihan 1: Instalasi Jupyter Notebook dengan MinicondaI.3. ArcPy dan ArcGIS API for PythonBagian II: ArcGIS NotebookII.1. Tentang ArcGIS NotebookII.1. Membuat ArcGIS NotebookLatihan 2: Memulai ArcGIS Notebook pada Jupyter Notebook di komputer lokalLatihan 3: Memulai ArcGIS Notebook pada ArcGIS Pro Python Command PromptLatihan 4: Memulai ArcGIS Notebook pada ArcGIS OnlineII.2. Struktur ArcGIS NotebookII.3. Perintah-perintah ArcPy dan ArcGIS API for Python dalam NotebookModul-Modul ArcGIS API for Python pada NotebookModul-modul ArcPy pada Notebook ServerBagian III: Manajemen Data menggunakan NotebookIII.1. Koneksi ke GeoportalIII.2. Menambahkan Portal Item menggunakan NotebookIII.3. Memanipulasi Portal Item menggunakan NotebookLatihan 5: Manajemen Data pada PortalBagian IV: Data Science dan Analisis Data menggunakan NotebookIV.1. Grafik dan Diagram dari Portal ItemIV.2. Analisis Statistik Spasial menggunakan NotebookLatihan 6: Analisis Stasistik Menggunakan NotebookIV.3. Analisis Spasial menggunakan NotebookLatihan 7: Analisis Raster dengan ArcGIS NotebookIV.4. Analisis 3D menggunakan NotebookLatihan 8: Mengakses WebMap dan WebScenesBagian V: Otomatisasi Notebook V.1. Notebook SchedulerV.2 Script Debugging


img

Pengantar

Tentang Panduan ini

Panduan ini dibuat untuk memberikan panduan dasar mengenai ArcGIS Notebook untuk pemula. Saat ini ESRI telah menyediakan panduan yang cukup lengkap tentang ArcGIS Notebook, ArcPy dan ArcGIS API for Python, sehingga dokumen ini hanya berfungsi sebagai pengantar ringkas bagi pemula yang ingin memulai bekerja dengan ArcGIS Notebook. Rujukan yang lebih lengkap pada berbagai dokumentasi yang disediakan oleh ESRI akan diberikan sepanjang panduan singkat ini.

Jadwal Pelatihan

Apabila diberikan pada pelatihan dasar tentang ArcGIS Notebook, pembagian jadwal dari materi ini dapat dilakukan sebagai berikut:

Hari 1: Review dan Pengenalan Konsep Python pada ArcGIS

WaktuMateri Pelatihan
09.00 - 10.00Pendahuluan (Review Pemrograman Python dan modul-modul yang berguna)
10.00 - 10.15Break
10.15 - 12.00Pendahuluan (Python pada Ekosistem ArcGIS)
12.00 - 13.00ISHOMA
13.00 - 15.00Konsep ArcGIS Notebook Server (ArcGIS Notebook Server, ArcGIS Enterprise dan Jupyter)
15.00 - 15.15Break
15.15 - 16.00Konsep ArcGIS Notebook Server (ArcPy dan ArcGIS API for Python)

 

Hari 2: ArcGIS Notebook

WaktuMateri Pelatihan
09.00 - 10.00ArcGIS Notebook
10.00 - 10.15Break
10.15 - 12.00Perintah-perintah ArcPy dan ArcGIS API for Python pada Notebook
12.00 - 13.00ISHOMA
13.00 - 15.00Manajemen Data menggunakan Notebook
15.00 - 15.15Break
15.15 - 16.00Latihan-Latihan

 

Hari 3: Data Science dan Otomatisasi

WaktuMateri Pelatihan
09.00 - 10.00Pengantar Data Science
10.00 - 10.15Break
10.15 - 12.00Data Science Menggunakan Notebook (Grafik dan statistik)
12.00 - 13.00ISHOMA
13.00 - 15.00Data Science Menggunakan Notebook (Analisis spasial dan 3D)
15.00 - 15.15Break
15.15 - 16.00Otomatisasi Notebook

 

Lisensi Dokumen

Dokumen ini dan latihan yang ada di dalamnya disusun di bawah panduan Lisensi MIT.

Dokumen ini ditulis oleh Dany Laksono untuk Pusat Data dan Teknologi Informasi (Pusdatin) Kementerian PUPR tahun 2020

 

Lisensi Perangkat Lunak

Sebagian besar latihan pada dokumen ini menggunakan produk dari ESRI ArcGIS, dan mengikuti lisensi masing-masing produk yang terkait. Untuk latihan, versi trial dari ArcGIS Online meliputi semua produk yang bisa digunakan di dokumen ini kecuali pembahasan mengenai ArcGIS Notebook Server dan ArcGIS Enterprise. Di Indonesia, lisensi ArcGIS Online dan ArcGIS Pro for Personal Use dapat diperoleh dengan harga yang cukup terjangkau.

 

Daftar Latihan

Gunakan link berikut untuk langsung menuju ke daftar latihan pada modul ini.

Latihan 1: Instalasi Jupyter Notebook

Latihan 2: Memulai ArcGIS Notebook pada Jupyter Notebook di komputer lokal

Latihan 3: Memulai ArcGIS Notebook pada ArcGIS Pro Python Command Prompt

Latihan 4: Memulai ArcGIS Notebook pada ArcGIS Online

Latihan 5: Manajemen Data pada Portal

Latihan 6: Analisis Stasistik Menggunakan Notebook

Latihan 7: Analisis Raster dengan ArcGIS Notebook

Latihan 8: Mengakses WebMap dan WebScenes

 

Pendahuluan

Sebelum masuk lebih jauh mengenai Konsep dan dasar pengolahan data dengan ArcGIS Notebook server, terlebih dahulu akan diberikan pengantar dan review mengenai pemrograman Python, bagaimana Python digunakan pada ekosistem ArcGIS serta beberapa modul third-party Python yang berguna dalam pengolahan data.

Review Pemrograman Python

Python merupakan bahasa pemrograman General Purpose Language aras tinggi, dan terinterpretasi (interpreted), serta salah satu bahasa pemrograman paling populer saat ini. Sebagai bahasa pemrograman general purpose, Python dapat ditemukan pada pemrograman web, analisis data, pemodelan, visualisasi grafis, pembuatan game, dan lain sebagainya. Popularitas Python salah satunya didorong oleh komunitas yang cukup besar dan struktur bahasanya yang mudah dipahami, sebagaimana tercermin pada Zen of Python:

Oleh penemunya, Guido van Rossum, Bahasa Python sendiri didesain agar menjadi kode yang sangat sederhana, mudah dibaca meskipun bagi mereka yang baru belajar, serta mampu menangani data dalam jumlah besar. Sebagai contoh, baris kode berikut:

akan menampilkan bilangan Fibonacci ke 10.000 yang disimpan pada sebuah array. Hasil dari program tersebut adalah bilangan yang sangat panjang:

Seluruh besaran bilangan tersebut dan algoritma hitungannya dapat ditangani dengan baik oleh Python tanpa banyak kesulitan. Sifat dinamis Python inilah yang menyebabkannya banyak digunakan sebagai wrapper untuk berbagai bahasa lain karena kemampuannya dalam melakukan abstraksi konsep yang rumit menjad bahasa yang mudah dipahami. Oleh karena itu, Python sering dijuluki sebagai glue language, dimana berbagai data dari berbagai sumber dapat dipertemukan pada platform yang sama.

Selain beberapa hal yang disebutkan di atas, hal lain yang membuat Python sangat powerful adalah dukungan libraries. Modularitas Python memungkinkan pengembangan aplikasi untuk berbagai keperluan. Seorang pengembang Bahasa Python dapat dengan mudah mengkombinasikan berbagai library dari ratusan ribu modul Python yang tersedia untuk berbagai macam keperluan.

Untuk meringkas, berikut adalah beberapa poin karakteristik Python sebagai bahasa pemrograman General Purpose:

 

Berikut adalah review beberapa konsep dasar Python berikut contohnya:

  1. Import statements

    Digunakan untuk memanggil library lain yang berisi beberapa modul (class pada Python).

  2. Deklarasi variabel

    Variabel pada Python bersifat Dynamic Typing: tipe data tidak perlu disebutkan secara eksplisit pada saat inisiasi. Python akan secara otomatis mengenali dan menetapkan tipe data untuk tiap variabel. Identifier pada nama variabel bersifat Case Sensitive, yaitu huruf besar dan kecil dianggap sebagai karakter yang berbeda

  3. Tipe Data

    Berikut adalah beberapa tipe data yang dikenali oleh Python:

    Tipe DataSyntax
    Text Typestr
    Numeric Typesint, float, complex
    Sequence Typeslist, tuple, range
    Mapping Typedict
    Set Typesset, frozenset
    Boolean Typebool
    Binary Typesbytes, bytearray, memoryview

    Tipe data yang penting untuk diingat antara lain adalah tuple, list dan dictionary. Contoh penggunaannya adalah sebagai berikut:

    Python menerapkan zero-based indexing untuk ketiga tipe data di atas, sehingga elemen pertama dapat diakses melalui indeks nol [0].

  4. Pernyataan syarat (conditional)

    Contoh pertama dari penggunaan pernyataan kondisional pada Python adalah dengan menggunakan if:

    Selain melalui conditional if , alur program pada Python juga dapat dikontrol melalui exception handling:

    Blok pernyataan pada Python dinyatakan dengan indentasi: pernyataan pada satu blok diawali dengan spasi pada blok yang sama.

  5. Pernyataan perulangan (loop)

    Pernyataan perulangan (loop) pada Python diberikan dengan menggunakan syntax for atau while. Sama seperti pada pernyataan lain pada Python, penanda blok pada perulangan adalah indentasi

     

    image-20200909002551860

    Contoh perulangan menggunakan while adalah sebagai berikut:

  6. Fungsi (function)

    Fungsi pada Python dinyatakan dengan keywords def. Sebuah fungsi dapat menerima argumen (*args) atau keyword-argument (** kwargs) yang dapat dipanggil kapanpun diperlukan.

    image-20200909004655991

    Contoh penggunaan *args dan *kwargs adalah seperti berikut:

 

Sebagai Bahasa Pemgrograman yang cukup mature, ekosistem modul pada Python memungkinkan penggunaan bahasa ini untuk berbagai keperluan. Sebagai contoh, untuk keperluan Data Science, Python menyediakan berbagai modul mulai dari antarmuka interaktif seperti Jupyter Notebook, Library untuk manipulasi data seperti Pandas, sampai modul visualisasi seperti Seaborn. Kombinasi berbagai modul ini memudahkan pengguna ketika bekerja dengan data dari berbagai sumber pada satu lingkungan pemrograman yang sama.

image-20200909091300870

Berikut adalah contoh sederhana penggunaan beberapa modul Python seperti pandas, numpy, matplotlib dan seaborn untuk mengolah data tabular dan menampilkan grafik:

 

Sebagai bahasa terinterpretasi, Python dikenal memiliki kecepatan yang lebih lambat dibandingkan dengan bahasa terkompilasi seperti C++. Meskipun demikian, kemampuan Python sebagai Swiss-Army Knife of Programming Language dan kemudahan bahasanya menyebabkan Python banyak digunakan dalam bidang Data Science, termasuk untuk pengolahan data spasial.

 

Pemrograman Python pada ArcGIS

Python telah dikenal sebagai bahasa pengantar (wrapper) untuk berbagai fungsi pada lingkungan ArcGIS. Pada ArcMap, misalnya, digunakan Python versi 2.7 sebagai bahasa pengantar untuk fungsi-fungsi pada ArcToolbox. Python juga dapat langsung diakses dengan menggunakan Python Console yang juga tersedia pada ekosistem ArcMap.

image-20200909092420643

 

Dengan datangnya periode End of Life (EOL) dari Python 2.7 pada awal tahun 2020, penggunaan Python pada ekosistem ArcGIS diperbarui dengan adanya ArcGIS online dan ArcGIS Pro. Dukungan Python 3.x pada ArcGIS Pro dan ekosistem ArcGIS Online dan ArcGIS Enterprise secara umum memungkinkan pengolahan data spasial untuk dilakukan secara terintegrasi dengan modul-modul Python lainnya. ArcGIS Pro bahkan memiliki pengaturan Python Environment dan Package Manager nya sendiri, sehingga tiap analisis dapat dilakukan dengan menggunakan beberapa modul Python yang berbeda. Gambar di bawah adalah Python Package Manager yang terdapat pada ArcGIS Pro, dan menunjukkan dua buah environment Python yang berbeda berikut dengan modul-modul (packages) yang tersedia di dalamnya.

image-20200910135846953

Berbicara tentang Interactive Python environment, ArcGIS Pro dan juga ArcGIS Online/Enterprise juga telah memiliki antarmuka Jupyter Notebook yang terintegrasi dengan fungsionalitas lain baik pada versi Desktop maupun Online, seperti Map Canvas dan Analysis Toolbox pada ArcGIS Pro melalui modul ArcPy. Pada ArcGIS Online/ArcGIS Enterprise, ArcGIS Notebook dilengkapi dengan modul ArcGIS API for Python yang merupakan wrapper untuk berbagai fungsi analisis maupun administratif dari ekosistem ArcGIS tersebut.

image-20200909093340805

 

Untuk penggunaan Python sebagai perangkat Spatial Data Science, ArcGIS menyediakan integrasi penuh pada modul Pandas dalam bentuk Spatial DataFrame (SDF). SDF merupakan format dataframe Pandas yang telah terintegrasi penuh dengan kemampuan pengolahan data spasial, dan merupakan bagian dari modul ArcGIS API for Python yang akan dibahas lebih jauh pada Bagian IV dari modul ini.Lebih jauh, modul ini akan membahas implementasi Python pada ekosistem ArcGIS, khususnya dalam bentuk ArcGIS Notebook yang menggunakan ArcGIS API for Python dan ArcPy untuk analisis dan visualisasi data spasial.

 

Bagian I: Konsep ArcGIS Notebook Server

I.1. ArcGIS Enterprise dan ArcGIS Notebook Server

ArcGIS Enterprise dan ArcGIS Notebook Server merupakan dua dari beberapa produk terbaru dalam lini produk ArcGIS yang dirilis oleh ESRI. ArcGIS Enterprise dibangun untuk menjawab kebutuhan akan adanya on-premise Enterprise GIS yang dapat digunakan dalam suatu organisasi besar untuk menyelesaikan permasalahan sesuai kebutuhan. ArcGIS Enterprise pada dasarnya merupakan upgrade dari berbagai produk ArcGIS yang sudah ada sebelumnya, seperti ArcGIS Server, Portal for ArcGIS, ArcGIS Data Store dan ArcGIS Web Adaptor.

img

ArcGIS Notebook Server merupakan perangkat server pada ArcGIS Enterprise yang berfungsi untuk menyediakan kapabilitas pengolahan data melalui Jupyter Notebook. Dengan kata lain, ArcGIS Notebook server merupakan host dari ArcGIS Notebook yang pada gilirannya merupakan antarmuka Jupyter Notebook untuk melakukan berbagai fungsi yang didukung melalui ArcPy dan ArcGIS API for Python.

image-20200901062933022

Pada infrastruktur ArcGIS Enterprise, ArcGIS Notebook Server mengalokasikan resource pada server untuk digunakan dalam pengolahan data dari Jupyter Notebook melalui beberapa container yang berjalan pada Docker Engine. ArcGIS Web Adaptor berfungsi sebagai load balancer untuk mengatur beban komputasi dari beberapa pengguna yang mengakses atau membuat Notebook pada ArcGIS Notebook sehingga semua pengguna memiliki alokasi kernel yang cukup untuk menjalankan notebook tersebut dan melakukan berbagai analisis di dalamnya.

 

I.2. Jupyter Notebook

Penjelasan mengenai Jupyter Notebook perlu dimulai dari konsol IPython (Interactive Python). IPython merupakan konsol interaktif yang menyediakan shell REPL (Read-Evaluate-Print-Loop) untuk scripting bahasa Python. Konsep penggunaan IPython adalah menyediakan fungsi scripting, visualisasi sekaligus debugging yang lebih mudah bagi pengguna khususnya dalam penggunaan Python untuk keperluan pengolahan data dan penyajian hasil analisis. Visualisasi yang dihasilkan dari analisis ini dapat langsung ditampilkan menggunakan GUI Toolkits, sehingga pengguna tidak perlu melakukan pengaturan khusus terlebih dahulu sebelum dapat membuat sebuah grafik plot, misalnya. IPython juga memperkenalkan konsep kernel untuk dalam scripting Python interaktif, dimana pembagian computing resource dilakukan di belakang layar sehingga tiap sesi scripting dapat berjalan secara simultan dengan meminimalisir kekurangan alokasi memory.

image-20200901043353770

 

Jupyter Notebook merupakan suksesor dari IPython, dimana tiap blok perintah diwakili oleh satu cell. Apabila IPython mengelompokkan tiap baris dalam satu kali eksekusi perintah, maka Notebook membuat kelompok-kelompok perintah ini dalam bentuk cell yang dapat dijalankan pada beberapa baris perintah sekaligus.

image-20200901043617692

 

File yang dibuat pada Jupyter Notebook menggunakan ekstensi *.ipynb, format JSON berisi tiap cell yang merupakan baris perintah Python, Markdown/Teks atau perintah shell (terminal). Format ini memudahkan sebuah notebook untuk dipindahkan ke perangkat lain. Sebuah notebook juga dapat berfungsi sebagai buku catatan karena memuat baris kode dan keterangan yang diperlukan dalam bentuk Markdown.

Beberapa perbaikan antarmuka diberikan oleh Jupyter Lab yang merupakan penerus dari Jupyter Notebook. Kelebihan Jupyter Lab adalah antarmukanya yang bersifat lebih fleksibel, dengan pengaturan tab untuk membuka beberapa notebook sekaligus, serta tampilan output dan editor kode yang dapat diatur dengan mudah.

img

Selain Jupyter Notebook dan Jupyter Lab, terdapat beberapa implementasi lain untuk IPython Notebook. Beberapa yang paling populer diantaranya adalah:

Google Colab, seperti yang tampak pada gambar di bawah ini, merupakan sebuah platform yang cukup mumpuni untuk keperluan analisis dan visualisasi data dengan menggunakan Jupyter Notebook. Google Colab disokong oleh kemampuan GPU processing yang disediakan oleh Google, sehingga dapat digunakan untuk melakukan pengolahan data spasial dalam jumlah besar, misalnya untuk keperluan Deep Learning. Meskipun demikian, terdapat beberapa kekurangan dari Google Colab dibandingkan dengan Jupyter Notebook untuk menjalankan fungsi analisis data spasial dengan ArcGIS API for Python. Diantaranya adalah dukungan untuk library plotting yang digunakan oleh ArcGIS API, seperti pembuatan peta inline.

image-20200901051251510

Jupyter Notebook dan Jupyter Lab dapat diinstall pada komputer sebagai bagian dari Conda Package Manager, yaitu Anaconda dan Miniconda. Anaconda merupakan paket terintegrasi yang lengkap: berisi ratusan modul yang sudah terinstall berikut ribuan modul lain yang dapat diinstall menggunakan conda. Selain Jupyter Notebook dan Jupyter Lab, Anaconda juga dilengkapi dengan antarmuka untuk berinteraksi dengan bahasa lain, semisal R, serta perangkat pengolahan data dan visualisasi out-of-the-box. Adapun Miniconda, seperti namanya, merupakan versi yang lebih sederhana dari Anaconda. Miniconda hanya memuat modul-modul penting (base modules) Python dan tidak menyediakan antarmuka out-of-the-box untuk menjaga agar ukuran instalasinya tetap kecil. Meskipun demikian, modul-modul tambahan dapat diinstall dengan mudah menggunakan perintah conda.

image-20200909234618553

Diantara keuntungan dari penggunaan Anaconda dan Miniconda sebagai package manager adalah kemampuan untuk mengatur Python Environment. Dengan jumlah modul yang mencapai ribuan, tentunya pada penggunaan berbagai modul ini memiliki potensi inkompatibilitas yang dapat merusak seluruh ekosistem Python lainnya. Untuk itu, tiap lingkungan scripting pada Python dapat dipisahkan pada Python Environment yang berbeda. Bukan hanya modul, tiap environment juga dapat memiliki versi Python yang berbeda, untuk menjaga agar masing-masing ekosistem dapat berjalan dengan baik tanpa mempengaruhi ekosistem lainnya, meskipun berada pada komputer yang sama. Apabila pada suatu komputer terinstall ArcGIS Desktop (ArcMap) dan ArcGIS Pro, maka sejatinya terdapat setidaknya dua versi Python yang berbeda pada komputer tersebut. Masing-masing versi Python berikut modulnya berjalan pada lingkungan yang berbeda.

image-20200910014946806

 

Latihan 1: Instalasi Jupyter Notebook dengan Miniconda

Pada latihan berikut akan dilakukan instalasi Jupyter Notebook pada ekosistem Python baru yang diinstall dengan menggunakan Miniconda. Latihan mengasumsikan penggunaan Sistem Operasi Windows, meskipun peserta dengan sistem operasi berbeda tetap akan dapat mengikuti latihan-latihan yang ada dengan mudah.

  1. Unduh instalasi Miniconda dari alamat https://docs.conda.io/en/latest/miniconda.html. Gunakan installer dengan Pyhon versi 3. Modul ini akan menggunakan Python versi 3 untuk seluruh contoh latihan yang diberikan

    image-20200910015709659

    setelah diunduh, lakukan instalasi pada file Miniconda3 WIndows 64-bit.exe, kemudian ikuti langkah instalasi sampai selesai

  2. Buka Anaconda Prompt (Miniconda3) pada start menu, kemudian mulai sesi Command Prompt dari Miniconda ini

    image-20200910015943022

  3. Pada jendela yang muncul, ketikkan perintah berikut untuk membuat environment baru:

    image-20200910020308591

    perintah ini digunakan untuk membuat sebuah Python environment baru dengan nama latihanjupyter. Angka 3 pada python=3 menyatakan versi Python yang akan digunakan di dalam environment tersebut.

  4. Python kemudian akan membuat environment baru dengan nama latihanjupyter

    image-20200910081821859

    Untuk mengaktifkan environment ini, ketikkan:

  5. Sebelum memulai, Jupyter Notebook terlebih dahulu perlu diinstall dengan menggunakan perintah:

    Jupyter Notebook kemudian akan diinstall ke environment ini

    image-20200910084619680

  6. Setelah instalasi, Jupyter Notebook dapat dipanggil menggunakan perintah:

    Tampilan berikut akan muncul

    image-20200910105050843

  7. Klik New > Python 3 untuk membuat Notebook baru

    image-20200910105202345

  8. Selanjutnya, perintah dalam bahasa Python dapat langsung diketikkan pada tiap cell yang tersedia. Gunakan kombinasi Shift+Enter untuk menjalankan Python pada cell tersebut.

 

I.3. ArcPy dan ArcGIS API for Python

ArcPy merupakan modul Python yang memiliki fungsi utama sebagai bahasa scripting utama untuk berhubungan dengan fungsi tingkat rendah pada ekosistem ArcGIS (ArcGIS Pro, ArcMap maupun ArcGIS Notebook Server di ArcGIS Online maupun ArcGIS Enterprise). Dengan mengakses ArcPy pada sebuah script Python (misalnya dalam sebuah Jupyter Notebook), maka fungsi-fungsi yang ada pada ArcGIS dapat diduplikasi dan digunakan secara mudah tanpa perlu membuka perangkat ArcGIS Desktop terlebih dahulu.

Kelebihan lain dari penggunaan ArcPy dalam Python adalah fakta bahwa Python merpakan bahasa pemrograman yang memiliki berbagai fungsi yang sangat luas. Aplikasi ArcGIS yang ditulis dengan ArcPy mendapatkan keuntungan dari pengembangan modul tambahan di banyak library Python (kurang lebih terdapat 209 ribu library yang terdaftar sampai saat ini) yang dikembangkan oleh para profesional GIS dan pengembang dari berbagai disiplin ilmu.

ArcGIS API for Python merupakan pustaka Python untuk menangani peta dan data geospasial dengan dukungan web GIS. API Ini menyediakan perangkat yang efisien untuk deep learning, analisis vektor dan raster, geocoding, pembuatan peta, routing, serta untuk mengatur dan mengelola portal GIS. Pengaturan dapat dilakukan pada pengguna (misalnya menambahkan pengguna baru), grup dan item pada ArcGIS Portal. Selain bekerja dengan data yang tersedia pada komputer lokal, library in juga memungkinkan akses ke peta siap pakai dan data geografis yang ada pada berbagai portal dari Esri dan sumber otoritatif lainnya. API ini juga terintegrasi dengan baik dengan ekosistem Python ilmiah yang menyertakan dukungan yang kaya untuk Pandas, Scikit-Learn, Fast.ai, dll, serta dukungan penggunaan di antarmuka interaktif melalui Jupyter Notebook, dalam bentuk ArcGIS Notebook .

image-20200901061231828

 

ArcGIS API for Python ini memungkinkan pengguna, administrator sistem, dan pengembang untuk memanfaatkan ekosistem Python dengan berbagai modulnya yang tersedia untuk mengotomatiskan alur kerja dan melakukan tugas berulang menggunakan script pada notebook. Platform ini terintegrasi dengan baik dengan Jupyter Notebook dan memungkinkan akademisi, data scientist, analis GIS, dan analis visualisasi data untuk saling berbagi Notebook yang diperkaya dengan data dan analisis geografis serta dapat direproduksi oleh orang lain melalui berbagi pakai file *.ipynb.

image-20200901062016662

Baik ArcPy maupun ArcGIS API for Python memiliki fungsi sebagai perangkat untuk mengakses library ArcGIS level rendah. Perbedaan keduanya ditunjukkan pada tabel berikut:

ArcPyArcGIS API for Python
Dijalankan terhadap fungsi ArcGIS Desktop (ArcMap atau ArcGIS Pro)Dijalankan terhadap fungsi yang terdapat para ArcGIS Portal (ArcGIS Online atau ArcGIS Enterprise)
Berbagai fungsi Geoprocessing yang tersedia pada DesktopFungsi analisis spasial sederhana
Terdapat beberapa fungsi untuk otomatisasi petaFungsi untuk administrasi portal, membuat konten (layer, service, dll) serta analisis Big Data

Dalam prakteknya, baik ArcPy maupun ArcGIS API for Python dapat digunakan secara bersama-sama dalam sebuah ArcGIS Notebook untuk melakukan berbagai hal terkait dengan fungsi manajemen dan analisis data spasial pada ekosistem ArcGIS Pro. Pada ArcGIS Online/Enterprise, fungsi analisis dari ArcGIS API for Python menggantikan beberapa fungsi analisis pada ArcPy, diantaranya melalui modul arcgis.features dan arcgis.raster.

Pembahasan mengenai perintah-perintah yang dapat dijalankan pada ArcPy dan ArcGIS API for Python melalui ArcGIS Notebook akan disampaikan pada bagian kedua dari modul ini.

 

Bagian II: ArcGIS Notebook

II.1. Tentang ArcGIS Notebook

image-20200830101228119

ArcGIS Notebook merupakan sebuah antarmuka Jupyter Notebook yang terpasang pada ArcGIS Notebook Server di infrastruktur ArcGIS Enterprise maupun pada ArcGIS Online. ArcGIS Notebook menyediakan fungsi dari ArcPy, ArcGIS API for Python serta ribuan fungsi dari modul tambahan yang disediakan oleh bahasa Python, termasuk untuk analisis Big Data dan fungsi Machine Learning. Di belakang layar, ArcGIS Notebook berdiri di atas ArcGIS Notebook Server yang terpasang baik pada infrastruktur ArcGIS Enterprise maupun pada ArcGIS online dengan pembagian sumber daya melalui pengaturan ArcGIS Web Adaptor.

Dengan kemampuan pengolahan data berbasis Python yang dimiliki oleh ArcGIS Notebook, platform ini memiliki fungsi yang sangat luas: dari analisis data spasial sederhana (geoprocessing) melalui fungsi-fungsi ArcPy, Manajemen portal dan pemanggilan layer dari repository publik ESRI melalui fungsi dari ArcGIS API for Python, serta berbagai fungsi yang disediakan oleh ribuan modul Python, seperti Pandas, SciPy, Numpy, TensorFlow, Seaborn dan seterusnya. Seluruh fungsi ini dapat dilakukan melalui sebuah antarmuka Jupyter Notebook sehingga memudahkan pengolahan data dari berbagai sumber, visualisasi grafis dan otomatisasi semua fitur yang ada pada ArcGIS Online/Enterpirse dengan kemampuan pembagian sumberdaya komputasi yang memadai.

 

II.1. Membuat ArcGIS Notebook

ArcGIS Notebook dapat dibuat melalui beberapa cara sebagai berikut:

Latihan 2-4 berikut membahas mengenai beberapa cara untuk memulai ArcGIS Notebook, baik pada komputer lokal maupun pada cloud (ArcGIS Online atau Enterprise):

Latihan 2: Memulai ArcGIS Notebook pada Jupyter Notebook di komputer lokal

Latihan berikut merupakan lanjutan dari latihan sebelumnya. Setelah Jupyter Notebook terinstall pada Python environment yang sudah dibuat, selanjutnya modul ArcGIS dapat diinstall pada Environment tersebut untuk dapat digunakan pada Jupyter sebagai ArcGIS Notebook

  1. Buka Anaconda Prompt seperti pada latihan sebelumnya, kemudian aktifkan Python environment yang telah dibuat sebelumnya (latihanjupyter)

  2. Setelah aktif, lakukan instalasi modul ESRI dan ArcGIS API for Python pada notebook ini menggunakan perintah:

    Instalasi modul ArcGIS akan berjalan:

    image-20200910121842728

  3. Setelah terinstall, buka kembali Jjupyter Notebook dengan mengetikkan perintah:

  4. Buat notebook baru (New > Python3) atau buka notebook yang sudah dibuat sebelumnya. Pada notebook ini modul ArcGIS telah terinstall dan dapat digunakan

  5. Untuk memeriksa bahwa modul ArcGIS telah diinstall pada environment ini, buat cell pada Notebook yang baru dibuat, kemudian masukkan:

    kemudian jalankan cell tersebut dengan menekan kombinasi tombol keyboard Shift+ Enter.

    image-20200910123657312

    Apabila tidak ada pesan kesalahan yang muncul, artinya modul ArcGIS telah terinstall dan notebook tersebut dapat digunakan sebagai ArcGIS Notebook.

 

Kekurangan dari penggunaan ArcGIS Notebook pada Jupyter Notebook yang diinstall menggunakan cara pada Latihan 2 di atas adalah bahwa modul ArcPy yang berisi fungsi geoprocessing pada ArcGIS ArcMap maupun ArcGIS Pro tidak dapat langsung dikenali oleh environment baru ini, sehingga memerlukan pengaturan lebih lanjut.

Apabila Latihan 2 di atas dijalankan pada environment yang dibuat di Miniconda dan berada di luar ekosistem ArcGIS, maka Latihan 3 di bawah memanfaatkan lingkungan Python yang berada pada ekosistem ArcGIS sehingga seluruh modul dapat langsung digunakan.

 

Latihan 3: Memulai ArcGIS Notebook pada ArcGIS Pro Python Command Prompt

Latihan ini menggunakan Python Command Prompt yang datang bersama dengan ArcGIS Pro. Untuk itu, diasumsikan bahwa ArcGIS Pro telah terinstall di komputer yang digunakan. Apabila ArcGIS Pro belum tersedia, silahkan merujuk pada bagian Lisensi Perangkat Lunak untuk mengetahui cara memperolehnya.

  1. Buka Python Command Prompt yang berada pada menu yang sama dengan instalasi ArcGIS Pro.

    Start Menu > All Programs > ArcGIS > Python Command Prompt

    image-20200910131601415

  2. Jendela Python Command Prompt akan terbuka. Command Prompt ini terhubung dengan lingkungan Python yang aktif pada ArcGIS Pro, sehingga tampilan awal akan langsung menunjukkan lingkungan Python yang sedang aktif (arcgispro-py3-clone di gambar di bawah).

    image-20200910131830051

  3. Pada lingkungan Python yang berada pada ArcGIS Pro, modul-modul ArcPy dan ArcGIS API for Python sudah terinstall dengan sendirinya. Begitu juga dengan Jupyter Notebook, sehingga tidak diperlukan instalasi khusus seperti sebelumnya.

  4. Selanjutnya, buka Jupyter Notebook dengan mengetikkan

    (Catatan: Apabila pada langkah ini dijumpai error, lakukan instalasi Jupyter Notebook seperti pada langkah di Latihan 1).

  5. Buat Notebook baru atau buka notebook yang sudah ada, kemudian ketikkan beberapa perintah untuk menguji instalasi modul ArcGIS API for Python dan ArcPy:

    Apabila tidak dijumpai pesan kesalahan, artinya instalasi modul telah berhasil dan ArcGIS Notebook dapat langsung digunakan.

    image-20200910140404989

 

Dua latihan di atas menggunakan ArcGIS Notebook yang terinstall pada komputer lokal. ArcGIS Notebook juga dapat digunakan pada ekosistem ArcGIS Online maupun ArcGIS Enterprise, sebagaimana pada latihan berikut:

 

Latihan 4: Memulai ArcGIS Notebook pada ArcGIS Online

Latihan ini menggunakan ArcGIS Notenook yang merupakan bagian dari ArcGIS Online. Untuk itu, diasumsikan bahwa akun ArcGIS Online telah aktif dan dapat digunakan. Apabila ArcGIS Online belum tersedia, silahkan merujuk pada bagian Lisensi Perangkat Lunak untuk mengetahui cara memperolehnya.

  1. Login ke akun ArcGIS Online melalui arcgis.com

    image-20200901061211415

     

  2. Pada menu yang tersedia di bagian atas halaman Portal ArcGIS Online atau Enterprise, klik pada Notebook

    image-20200910203533370

  3. Akan muncul beberapa opsi runtime yang dapat digunakan untuk menjalankan Notebook yang akan dibuat. Opsi yang tersedia pada ArcGIS Online antara lain adalah ArcGIS Notebook Python 3 Standard, ArcGIS Notebook Python 3 Advanced dan ArcGIS Notebook Python 3 Advanced with GPU. Pilihan yang tersedia ini menyatakan seberapa besar alokasi sumberdaya komputasi akan diberikan untuk Notebook tersebut. Untuk pengolahan dan visualisasi data dalam jumlah besar, runtime standard atau advanced cukup memadai untuk digunakan. Untuk keperluan pengolahan data yang memerlukan kemampuan komputasi yang tinggi (misalnya Machine Learning dari data citra satelit dalam jumlah besar), maka disarankan menggunakan notebook dengan alokasi komputasi yang memiliki GPU.

    image-20200901063540373

    Pada ArcGIS Enterprise, opsi runtime yang tersedia sesuai dengan tingkat lisensi yang dimiliki pada ArcGIS Notebook Server tersebut.

  4. Setelah terbuka, notebook tersebut dapat langsung digunakan dengan modul-modul ArcGIS API for Python dan ArcPy

    image-20200910221548766

  5. Selain memulai dari menu Notebook di atas, sebuah ArcGIS Notebook juga dapat dibuat sebagai salah satu item dari menu Content seperti gambar di bawah

    image-20200910222038263

 

Selain ketiga cara di atas, sebuah ekosistem ArcGIS Notebook juga dapat dibuat menggunakan kontainer Docker. Adapun pembahasan mengenai inisiasi ArcGIS Notebook menggunakan Docker adalah di luar cakupan dokumen ini.

II.2. Struktur ArcGIS Notebook

ArcGIS Notebook memiliki struktur yang identik dengan Jupyter Notebook, yaitu terdiri dari beberapa Cell, dimana tiap cell merupakan baris-baris perintah pada bahasa Python. Hanya terdapat sedikit bagian dari ArcGIS Notebook yang berbeda dengan Jupyter Notebook pada umumnya. Bagian-bagian dari sebuah ArcGIS Notebook ditunjukkan pada gambar di bawah ini:

image-20200901074318653

Penjelasan untuk gambar di atas adalah:

  1. Cell, merupakan komponen utama dari sebuah ArcGIS Notebook. Pada cell inilah nantinya script dalam bahasa Python maupun markdown akan dieksekusi. Sebagaimana pada Jupyter Notebook, cell pada ArcGIS Notebook terdiri dari cell input (In [angka ensekusi]) dan output (Out [angka ensekusi]). Cell input dapat diisi dengan script sesuai dengan cell type, sedangkan output menampilkan keluaran konsol, pesan kesalahan, maupun grafis visualisasi.

  2. ArcGIS Menu. Bagian ini merupakan pembeda ArcGIS Notebook dengan antarmuka Jupyter Notebook pada umumnya. Menu tambahan ini memungkinkan pengguna ArcGIS Notebook untuk dapat mengakses item pada Portal ArcGIS dengan cepat. Beberapa item yang dapat ditambahkan antara lain adalah Layer, Analisis dan File. Menu ini juga dapat digunakan untuk membagikan dokumen Notebook dalam bentuk link atau dokumen.

  3. Cell Type menentukan jenis script yang dijalankan di cell. Terdapat beberapa jenis script seperti pada gambar di bawah:

    image-20200910231304438

    Type Code merupakan jenis cell yang dapat menampung script Python, bash command (dengan menggunakan penanda ''!') serta Jupyter Magic Command (dengan menggunakan tanda '%').

    Type Markdown merupakan bahasa Markdown (mengikuti aturan Github Flavored Markdown) yang dapat digunakan untuk membuat notebook tersebut sebagai script terdokumentasi. Markdown dapat digunakan untuk menambahkan teks, heading (sama seperti Type Heading), gambar, potongan kode, dan lain sebagainya.

    Type RawNBConvert jarang digunakan. Tipe ini merupakan format JSON yang digunakan oleh Jupyter Notebook untuk menyimpan metadata dari tiap cell.

  4. Runtime, merupakan pengaturan kernel yang dialokasikan kepada notebook yang sedang dibuka. Runtime menentukan seberapa banyak alokasi sumberdaya yang diberikan pada Notebook, serta jenis interpreter Python dan virtual environment yang digunakan. Alokasi sumberdaya ini memiliki batas waktu (misal 24 jam), sehingga apabila notebook tidak digunakan dalam jangka waktu tertentu, koneksi pada runtime harus diulang kembali dengan menggunakan menu Kernel > Reconnect.

Perintah dan shortcut untuk menjalankan ArcGIS Notebook sama seperti Jupyter Notebook pada umumnya. Demikian pula dengan format *.ipynb yang digunakan. Dengan demikian, notebook yang dibuat di ArcGIS Notebook online dapat diunduh kemudian dibuka pada Jupyter Notebook di komputer lokal, dan demikian sebaliknya.

II.3. Perintah-perintah ArcPy dan ArcGIS API for Python dalam Notebook

ArcGIS Notebook dapat menjalankan berbagai perintah dari bahasa Python, termasuk ribuan package/library yang dapat dipanggil ke dalam ArcGIS Notebook melalui perintah import. Pada ekosistem ArcGIS sendiri terdapat dua package/library yang utama, yaitu ArcGIS API for Python dan ArcPy. Kedua package ini berisi modul-modul yang memiliki berbagai fungsi, mulai dari memanggil data dan berhubungan dengan portal ArcGIS, analisis data, visualisasi grafis dan manajemen portal.

Dengan mengkombinasikan kemampuan dari modul-modul ini serta modul tambahan dari Python, sebuah Notebook ArcGIS memiliki kemampuan yang cukup memadai, termasuk berbagai fungsi yang mungkin tidak dijumpai pada antarmuka Desktop, seperti pengolahan Big Data atau Machine Learning.

 

Modul-Modul ArcGIS API for Python pada Notebook

ArcGIS API for Python, sebagaimana dijelaskan sebelumnya, merupakan modul utama untuk berinteraksi dengan ArcGIS Notebook. pada ArcGIS API for Python inilah dapat ditemukan berbagai modul yang digunakan oleh ArcGIS notebook untuk melakukan fungsinya.

Modul-modul ArcGIS API for Python dapat diakses dari notebook melalui:

image-20200909095527370

Gambar di atas menunjukkan modul-modul pada ArcGIS API for Python yang dapat diakses melalui ArcGIS Notebooks. Modul arcgis.gis merupakan modul utama yang perlu diakses sebagai inisiasi setiap pemanggilan Notebook.

Modul gis adalah yang paling penting dan menyediakan pintu masuk ke dalam GIS. Ini memungkinkan Anda mengelola pengguna, grup, dan konten di GIS. Admin GIS menghabiskan banyak waktu untuk modul ini.

Modul berwarna hijau digunakan untuk mengakses berbagai kapabilitas spasial atau kumpulan data geografis di GIS. Modul ini mencakup keluarga fungsi geoprocessing, tipe, dan objek pembantu lainnya untuk bekerja dengan data spasial dari tipe tertentu.

Modul berwarna biru menyediakan fungsionalitas tambahan untuk alur kerja Anda. Mereka termasuk modul geocoding untuk menemukan tempat, modul geometri untuk merepresentasikan geometri data fitur dan fungsi untuk bekerja dengannya, modul geoprocessing yang memudahkan untuk mengimpor alat geoprocessing pihak ketiga dan bekerja dengannya serta modul geoenrichment yang membantu Anda memperkaya kumpulan data Anda dengan informasi tematik.

Modul berwarna oranye memungkinkan Anda untuk memvisualisasikan dan menyebarkan data dan analisis GIS Anda. Modul widget menyertakan widget notebook MapView Jupyter untuk memvisualisasikan peta dan lapisan, modul pemetaan memiliki jenis dan fungsi untuk bekerja dengan peta web dan lapisan web, dan modul aplikasi membantu Anda membuat dan mengelola aplikasi web yang dibuat dengan ArcGIS.

 

Penjelasan untuk tiap modul adalah sebagai berikut:

image-20200902074552530

 

Modul-modul ArcPy pada Notebook Server

Package ArcPy, sebagaimana ArcGIS API for Python, juga memiliki beberapa kelas yang dapat digunakan untuk keperluan yang berbeda. Untuk memulai ArcPy pada sebuah notebook (dari ArcGIS Online atau Notebook Server), gunakan perintah berikut:

Beberapa modul yang dapat digunakan pada arcpy di Notebook Server ini antara lain:

 

Sebuah ArcGIS Notebook yang kompleks dapat berisi beberapa modul sekaligus, seperti ArcGIS API for Python, ArcPy dan modul tambahan dari Python yang digunakan untuk melakukan analisis data yang kompleks.

Bagian III: Manajemen Data menggunakan Notebook

Sebagaimana dibahas pada bagian sebelumnya, dari ArcGIS Notebook dapat digunakan untuk melakukan manajemen data pada Portal. Dengan menggunakan beberapa modul dari package ArcGIS API for Python khususnya modul arcgis.gis, dapat dilakukan koneksi antara Notebook dengan item-item pada portal.

III.1. Koneksi ke Geoportal

Koneksi ke geoportal dilakukan dengan menggunakan modul gis pada ArcGIS API for Python. Koneksi ini diperlukan untuk dapat mengakses dan melakukan operasi pada portal Beberapa koneksi sekaligus dapat dibuat pada satu notebook yang sama, sehingga dapat digunakan untuk mengakses data dari sumber yang berbeda.

Koneksi ke geoportal dilakukan sebagai berikut:

Jenis koneksi menentukan item yang dapat diakses sesuai dengan tingkat autentikasinya, sebagaimana dibahas berikut.

III.2. Menambahkan Portal Item menggunakan Notebook

Akses terhadap item yang berada pada portal mengikuti jenis koneksi yang dimiliki oleh pengguna notebook: penggunaan koneksi gis("HOME") akan memberikan akses ke item portal yang berada pada portal akses pengguna.

Penambahan item dari portal dapat dilakukan dengan beberapa cara:

  1. Menggunakan script gis.content.get(), seperti berikut:

  2. Menggunakan menu pada ArcGIS Notebook

    Pada ArcGIS Notebook sudah disediakan menu untuk menambahkan data yang dapat diakses dari portal.

    image-20200911102739300

Item yang telah ditambahkan kemudian dapat dimanipulasi: diolah, dihapus, dan seterusnya sebagaimana analisis pada antarmuka Portal ArcGIS.

III.3. Memanipulasi Portal Item menggunakan Notebook

Setelah ditambahkan, item yang sudah disimpan menjadi sebuah variable pada notebook kemudian dapat diolah lebih lanjut. Properti dari tiap item dapat langsung diakses sebagai modul atau method, seperti berikut:

Dengan demikian, dapat dilakukan updating terhadap item seperti berikut:

Demikian pula apabila item tersebut akan dihapus dari portal:

 

Latihan berikut memberikan contoh bagaimana fungsi script-script di atas digunakan

Latihan 5: Manajemen Data pada Portal

Latihan ini berisi beberapa contoh dasar penggunaan ArGIS Notebook untuk melakukan manajemen data spasial pada portal ArcGIS Online maupun ArcGIS Enterprise.

  1. Membuat koneksi ke Geoportal

    Koneksi ke geoportal dilakukan dengan menggunakan modul gis pada ArcGIS API for Python. Koneksi ini diperlukan untuk dapat mengakses dan melakukan operasi pada portal Beberapa koneksi sekaligus dapat dibuat pada satu notebook yang sama, sehingga dapat digunakan untuk mengakses data dari sumber yang berbeda.

    Beberapa koneksi sekaligus dapat dibuat untuk mengakses data dari portal yang berbeda, seperti berikut:

    Koneksi dapat dilakukan pada beberapa akun yang berbeda dengan menggunakan nama identifier yang unik untuk tiap koneksi

     

  2. Mencari item pada Portal

    Tiap koneksi dapat digunakan untuk mencari data pada portal yang terkait. Koneksi anonymous hanya dapat mengakses data yang memiliki hak akses public. Data pada portal yang terkunci memerlukan username dan password agar dapat diakses. Pencarian pada koneksi ini dapat dilakukan dengan menggunakan modul content pada arcgis.gis.

    Contoh pencarian layer dari Portal SIGI adalah sebagai berikut:

    Menampilkan hasil pencarian dengan IPython. IPython dapat digunakan untuk berkomunikasi langsung dengan Jupyter Notebook, seperti menampilkan item dengan format tertentu.

    Hasil pencarian dapat disimpan pada kernel aktif menjadi layer baru. Index pertama [0] digunakan untuk mengakses hasil pencarian pertama.

    Beberapa fungsi Python dapat digunakan untuk mengoptimalkan pencarian. Apabila judul item yang akan dibuka telah diketahui, maka query dapat dibuat untuk langsung memanggil item tersebut:

    Cara lain adalah dengan menggunakan Python untuk melakukan iterasi pada item dan mencari properti yang sesuai:

     

  3. Menampilkan Hasil Pencarian pada peta

    Hasil pencarian dari portal merupakan sebuah 'item' yang tidak dapat langsung diolah sebagai sebuah layer. Item mewakili layer berikut metadata dan keterangan pendukung lainnya. Contoh berikut menunjukkan bagaimana hasil pencarian dari portal dapat dipanggil dalam bentuk layer yang bisa ditampilkan pada peta

    Layer dari item terpilih dapat dipanggil menggunakan index nol [0]. Hasil layer ini dapat disimpan pada memory dan ditambahkan ke dalam peta yang sudah dibuat sebelumnya.

    Modul maps memiliki beberapa properti yang berguna untuk mengatur tampilan peta. Diantaranya adalah basemap, zoom level, dan seterusnya.

 

 

Bagian IV: Data Science dan Analisis Data menggunakan Notebook

Python dikenal sebagai salah satu bahasa yang paling dominan digunakan dalam Data Science, sesuai dengan karakteristik bahasa Python yang telah disebutkan sebelumnya. Terdapat banyak modul Python yang mampu digunakan untuk mendukung fungsi analisis data, dari akuisisi, pengolahan hingga visualisasi. ArcGIS API for Python menempatkan data spasial sebagai salah satu tipe data yang dapat diolah dengan mudah menggunakan Python, tentunya dengan menggunakan ArcGIS Notebook.

IV.1. Grafik dan Diagram dari Portal Item

Fungsi penggambaran pada peta di ArcGIS API for Python dapat dijumpai pada modul GIS (arcgis.gis.map) seperti yg sudah disebutkan. Selain itu, penggambaran dan plotting pada peta dapat dilakukan dengan menggunakan kombinasi beberapa modul Python seperti Matplotlib, Seaborn, Bokeh, atau bahkan Spatial Data Frame yang terintegrasi dengan Pandas.

Contoh penggunaan Spatial Data Frame untuk menampilkan grafik dari layer adalah sebagai berikut:

Script di atas melakukan pengambilan layer dari data spasial, kemudian melakukan konversi layer tersebut menjadi Pandas Data Frame. Dengan demikian, pengolahan lebih lanjut dapat dilakukan pada data seperti yang dilakukan pada data dua dimensi non-spasial lainnya.

image-20200911141151363

IV.2. Analisis Statistik Spasial menggunakan Notebook

Sama seperti fungsi penggambaran/plotting, fungsi untuk analisis statistik juga dapat dilakukan menggunakan fungsi yang dapat diperoleh dari modul third-party Python. Dalam hal ini, Pandas berperan penting karena integrasi dengan lingkungan ArcGIS dalam bentuk Spatial Data Frame memudahkan analisis statistik dilakukan secara langsung pada data spasial yang tersimpan di portal ArcGIS. Selain itu tentu saja modul seperti Numpy, Scipy, Matplotlib, Seaborn, dan lain sebagainya.

Contoh analisis statistik yang dilakukan dengan ArcGIS API for Python adalah sebagai berikut:

 

Latihan 6: Analisis Stasistik Menggunakan Notebook

Bagian ini mendemokan bagaimana data yang dipanggil dari portal dapat diolah dengan menggunakan Pandas sebagai dataframe. ArcGIS Notebook menggunakan Spatially Enabled Data Frame (SEDF) untuk mengolah data spasial dengan Pandas. Contoh berikut menggunakan SDEF untuk melakukan slicing data

  1. Mengolah Data dari Portal dengan Pandas/Spatially Enabled Dataframe

    Memanggil layer dari portal:

    Dari hasil pemanggilan item, kemudian dilakukan ekstraksi layer dengan memanggil indeks nol [0]

    Spatially Enabled Data Frame (SDEF) memiliki berbagai fungsi untuk mengkonversi data spasial dari dan ke format dataframe yang digunakan oleh Pandas.

    Query sederhana dalam bahasa SQL dapat dibuat pada feature layer yang telah terbentuk

    Hasil seleksi dapat disimpan sebagai layer baru pada kernel untuk dilakukan proses selanjutnya

    Layer yang sudah terbentuk dapat ditambahkan ke dalam peta

     

  1. Melakukan Analisis Spasial

    Modul ArcGIS API for Python mengandung fungsi untuk analisis geoprocessing baik raster maupun features. Modul-modul ini dapat digunakan untuk melakukan analisis spasial terhadap data yang diperoleh dari server. Pada ArcGIS Desktop, modul-modul ini juga dapat dikombinasikan dengan fungsi-fungsi yang disediakan oleh ArcPy.

    Analisis spasial dilakukan dengan memanggil method yang sesuai dari modul features atau raster. Contoh berikut melakukan analisis densitas pada data yang dipanggil dari server publik ArcGIS

    Hasil analisis, sebagaimana layer lain, dapat ditambahkan pada peta

    Contoh lain penggunaan analisis adalah sebagai berikut: pada tiap layer dilakukan buffer sejauh 500 meter

    Terakhir, data hasil analisis juga bisa ditambahkan ke dalam peta

 

IV.3. Analisis Spasial menggunakan Notebook

Sebagaimana disebutkan di atas, fungsi analisis spasial dapat dilakukan menggunakan modul arcgis.gis.features dan arcgis.gis.raster. Fungsi analisis ini juga dapat ditemukan di bagian menu pada ArcGIS Notebook dalam bentuk GUI.

image-20200911145521634

 

Berikut adalah contoh untuk analisis raster dengan ArcGIS API for Python:

 

Latihan 7: Analisis Raster dengan ArcGIS Notebook

Pada latihan berikut, ArcGIS Notebook akan dimanfaatkan untuk melakukan object counting berupa sawah lingkaran di daerah durun pasir melalui fungsi arcgis.raster dan library Scikit yang tersedia pada Python. Untuk dapat menggunakan notebook ini, beberapa library berikut harus terlebih dahulu terinstall:

Instalasi ini tidak diperlukan apabila digunakan ArcGIS Notebook yang berada pada ArcGIS Online atau Enterprise.

  1. Melakukan inisiasi modul Python

  2. Mengambil data Landsat

  3. Baris kode berikut mendefinisikan extent dari citra Landsat yang akan diolah:

  4. Dengan menggunakan metode arcgis.raster, preprocessing citra dapat dilakukan sebelum klasifikasi menggunakan scikit-image.

  5. Hasil dari analisis yang sudah dilakukan di atas kemudian disimpan dengan menggunakan fungsi pada matplotlib sebagai file baru, kemudian ditampilkan dengan fungsi plotting dari Matplotlib

    Matplotlib sebagai berikut:

  6. Blob dideteksi dengan menggunakan Scikit-image untuk kemudian diplot dengan Matplotlib. Blob dideteksi menggunakan algoritma Difference of Gaussian (DoG).

  7. Terakhir, hasil pencarian objek dapat ditamplikan menggunakan:

 

IV.4. Analisis 3D menggunakan Notebook

Pada ekosistem ArcGIS, analisis 3D dilakukan pada sebuah WebScene, baik pada ArcGIS Online/Enterprise maupun pada ArcGIS Desktop. Di ArcGIS API for Python, modul arcgis.mapping digunakan untuk melakukan manajemen terhadap webmaps maupun webscene pada Portal ArcGIS Online.

Contoh penggunaannya adalah pseudocode sebagai berikut:

Sejauh ini, ArcGIS API for Python belum menyediakan fungsi analisis khusus untuk 3D (misalnya Buffer 3D atau Line-of-Sight pada webscene). Meskipun demikian, Webscene dapat difungsikan sebagai media untuk menampilkan hasil analisis data raster (seperti viewshed) yang juga dapat dioverlay dengan data lain, seperti hasil analisis statistik.

 

Latihan 8: Mengakses WebMap dan WebScenes

WebMap dan WebScene merupakan dua platform untuk menampilkan data spasial yang dapat diakses oleh pengguna baik di dalam maupun di luar organisasi portal. Pada ArcGIS Notebook, Webmap dan scenes disimpan pada portal, dan antarmukanya pada Notebook dapat dilakukan melalui penggunaan modul arcgis.mapping.

  1. Melakukan koneksi ke Portal

  2. Melakukan pencarian WebMap

    WebMap adalah sebuah item pada portal yang dapat dicari sebagaimana item lain, seperti Feature Class maupun Services

  3. Hasil pencarian disimpan sebagai sebuah variabel

  4. Membuat webmap baru

  5. Menampilkan WebMap

    Menambahkan layer ke webmap

  6. Sebagaimana WebMap, WebScene juga dapat dimodifikasi dengan menggunakan Notebook

  7. Webscene juga dapat dibuat sebagaimana webmap

  8. Webscene dapat ditampilkan dengan memanggil isi variabelnya

    img

 

Bagian V: Otomatisasi Notebook

Lebih jauh, sebuah Notebook dapat diatur agar bisa berjalan secara otomatis. Pengaturan dilakukan pada ArcGIS Notebook Server, dengan tingkat otomatisasi sebagai berikut:

  1. Otomatisasi sederhana, di mana tugas yang sebelumnya dilakukan secara manual kini dapat diotomatisasi tanpa perubahan signifikan dalam prosesnya. Contohnya adalah melakukan otomatisasi pada alur validasi data atau notebook untuk memeriksa aktivitas pengguna pada portal secara otomatis.
  2. Otomatisasi tingkat lanjut meningkatkan skala dan kompleksitas tugas yang diotomatiskan. Bisa jadi bentuknya adalah dengan merangkai beberapa alur kerja untuk mendapatkan wawasan atau efisiensi yang lebih baik. Contohnya adalah kolaborasi terdistribusi, yang memungkinkan alur berbagi antar sistem GIS yang terpercaya.
  3. Otomatisasi cerdas yang merupakan level paling kompleks dan secara langsung terlibat dalam pengambilan keputusan. Di sini, perangkat lunak (dalam hal ini ArcGIS Notebook) digunakan untuk menginformasikan dan mendorong proses bisnis yang berjalan.Contohnya adalah menerapkan model deep learning untuk menentukan ke mana pekerja lapangan harus melakukan survey berikutnya, atau bagian mana dari jaringan utilitas Anda yang perlu diperluas.

V.1. Notebook Scheduler

Sejauh ini otomatisasi hanya dapat dilakukan di ArcGIS Enterprise, dan nantinya akan diperluas dukungannya ke ArcGIS Online. Pada ArcGIS Enterprise, penjadwalan Notebook dapat dilakukan melalui menu Task pada halaman Item Detail seperti pada gambar:

img

Tiap notebook dapat diberikan 'tugas' (Task) untuk berjalan pada waktu tertentu, misalnya sekali tiap 24 jam. Selain itu, notebook juga dapat menerima parameter yang akan dipanggil pada saat notebook ini dijalankan.

 

V.2 Script Debugging

Jupyter Notebook merupakan antarmuka interaktif yang dirancang untuk memberikan kemudahan dalam melakukan debugging dan scripting dengan keluaran yang dapat langsung ditampilkan pada cell yang ada. Selain fungsi-fungsi dasar Python, Jupyter notebook juga menyediakan magic function yang dapat digunakan untuk membantu dalam melakukan debuggin. Beberapa diantaranya adalah: