Instalasi Miniconda untuk Pengolahan Data Geospasial dengan Earth Engine API

Miniconda adalah alternatif dari Anaconda yang hanya terdiri dari Python, conda, dan beberapa library Python esensial lainnya seperti pip, zlib, dan beberapa lainnya. Kelebihan dari Anaconda/Miniconda adalah adanya Conda sebagai package manager yang bisa mengatur environment dan instalasi package yang kita inginkan. Anaconda direkomendasikan bagi pemula yang baru mengerti conda atau Python dan memiliki ruang yang cukup untuk menginstal beberapa package bawaan sekaligus.

Karena keterbatasan space di SSD, artikel kali ini saya ingin membahas penggunaan Miniconda untuk mempersiapkan sebuah environment untuk mengolah data geospasial melalui Google Earth Engine API. Instalasi Miniconda3 di Windows 10 bisa dilakukan dengan mengunduh dari tautan berikut ini (Miniconda — Conda documentation). Setelah mejalankan instalasi Miniconda3, saya sarankan untuk menginstal hanya untuk user anda (bukan all users). Setelah terinstal Miniconda, Anda bisa menggunakan Anaconda Prompt atau Anaconda Powershell Prompt untuk memulai instalasi tools di bawah ini, namun sebelumnya saya akan membahas singkat kedua tools yang dapat dipakai untuk mengolah data geospasial melalui Google Earth Engine di Python.

Google Earth Engine Python API dan GEE Map

Google Earth Engine menyediakan penginderaan satelit dan dataset geospasial yang beragam. Arsip data publik ini berukuran hingga 20 petabyte dan dapat dipakai untuk berbagai macam jenis analisis. Melalui Earth Engine API, kita dapat menggunakan Google Cloud untuk membantu mengolah data satelit tersebut untuk pengembangan aplikasi geospasial kita. Selain dari JavaScript, Earth Engine API juga bisa diakses melalui bahasa pemrograman Python. Kelebihan menggunakan Python adalah banyaknya toolset yang sudah tersedia di Python untuk pemrosesan data lebih lanjut, namun perlu diketahui bahwa status development dari Earth Engine API di Python masih Pre-Alpha, sehingga perlu diingat bahwa beberapa fitur di Python API berbeda dari Javascript API.

Selain itu, library yang cukup penting untuk melakukan eksplorasi data geospasial melalui Google Earth Engine adalah library GEEMap (https://geemap.org). Library ini dikembangkan oleh Prof. Qiusheng Wu dan tutorial penggunaan library ini dapat diakses di channel YouTube Prof. Wu. Kelebihan dari library ini adalah kemudahan untuk membuat peta dengan syntax yang serupa dengan JavaScript agar lebih mudah transisi dari Google Earth Code Editor (JavaScript) ke Jupyter Notebook (Python). Selain itu, terdapat berbagai fitur tambahan di peta yang dihasilkan, selengkapnya bisa dilihat di tutorial yang telah disediakan oleh Prof. Wu.

Instalasi Menggunakan Conda

Untuk instalasi GEEMap maupun Earth Engine API menggunakan Conda sangat sederhana, pertama kita bisa membuat sebuah environment baru dengan

conda create -n earthengine python=3.9
conda activate earthengine

Lalu kita dapat menginstal GEEMap dan Earth Engine API menggunakan command:

conda install -c conda-forge earthengine-api
conda install -c conda-forge geemap

Setelah terinstal earthengine-api dan geemap, kita sudah bisa memulai pengembangan melalui Jupyter Notebook dan memulai eksplorasi data

Gambar 1. GEEMap dan Earth Engine API di atas Jupyter Notebook untuk mencari data Carbon Monoxide

Selamat mencoba dan melakukan eksplorasi data satelit yang terbuka dari European Space Agency (ESA) melalui berbagai jenis satelit Sentinel ataupun data-data terbuka lainnya.

Install Python 3.6 on Raspbian

Ingin memakai Python 3.6 pada Raspberry Pi? Namun saat Anda menjalankan program menggunakan Python di Raspberry Pi, versi Python yang dipanggil adalah versi Python 2.7. Post blog ini akan membahas bagaimana mengubah default Python 2.7 menjadi Python 3.6.

Sebelum saya memulai tutorial ini, saya ingin menjelaskan satu hal yang mungkin sering terlihat pada tutorial-tutorial Linux, yaitu anotasi $ dan #. Saat menulis command Linux Terminal di dokumen umumnya anotasi $ dan # sering dipakai sebagai prefix. Asal usul $ dan # adalah dari Terminal Linux, jika user yang dibuka bukan root, maka Terminal Linux akan menunjukkan tanda $, jika Terminal Linux menunjukkan tanda # artinya Anda sedang mengakses root. Pada dokumen yang menunjukkan command Linux, # menandakan command tersebut harus diakses sebagai root (atau dengan sudo jika bukan root).

Hal pertama yang dapat dilakukan adalah mengecek apakah Python default Anda ada pada Python 3.x atau pada Python 2.x, untuk memastikan hal ini gunakan command sebagai berikut:

$ python --version

PythonVersionStart
Gambar 1. Versi Python sebelum update ke 3.6.4

Beberapa hal perlu dilakukan untuk mengubah Python 2.7 menjadi Python 3.6. Hal pertama yang perlu diperhatikan adalah memastikan bahwa beberapa package dependencies sudah di-install pada Raspberry Pi. Pastikan dengan menggunakan command sebagai berikut:

# apt-get update
# apt-get install build-essential tk-dev libncurses5-dev libncursesw5-dev libreadline6-dev libdb5.3-dev libgdbm-dev libsqlite3-dev libssl-dev libbz2-dev libexpat1-dev liblzma-dev zlib1g-dev

Setelah melaksanakan beberapa program tersebut, Anda dapat langsung mengunduh source code Python 3.6 dari website resmi Python. Source code Python 3.6 yang tersedia berupa tar.xz sehingga anda perlu melakukan proses unpack. Sebelum mengunduh dengan wget, pastikan Anda sudah di direktori /tmp/ agar source code yang Anda unduh akan terhapus secara otomatis setelah reboot.

$ cd /tmp/
$ wget https://www.python.org/ftp/python/3.6.4/Python-3.6.4.tar.xz
$ tar xf Python-3.6.4.tar.xz

DownloadPythonSource
Gambar 2. Hasil unduhan dan ekstraksi dari source code Python 3.6.4

Setelah Anda berhasil mengekstrak seperti pada Gambar 2, Anda dapat melihat bahwa source code Python 3.6.4 sudah berada pada /tmp/Python-3.6.4. Untuk melanjutkan proses instalasi Python 3.6.4, akses direktori Python-3.6.4

$ cd Python-3.6.4

Setelah membuka direktori, ikuti proses ini untuk instalasi Python 3.6.4:

$ ./configure
$ make
# make altinstall

Setelah instalasi Python 3.6, Anda akan melihat bahwa Python default masih seperti Python sebelumnya, untuk saya Python masih 2.7.13. Untuk mengubah default Python yang digunakan perlu digunakan update-alternatives. Pertama, pastikan Anda tahu posisi instalasi Python 3.6 dan bahwa Python 3.6 yang sudah diinstal dapat diakses. Lakukan kedua command ini untuk mengetahui posisi Python 3.6

$ ls /usr/bin/python*
$ ls /usr/local/bin/python*

Setelah mengetahui posisi executable Python 3.6, lakukan update-alternatives untuk menambahkan Python 2.7.13 dan Python 3.6.4 sebagai alternatif Python. Gambar 3 menunjukkan hasil keluaran dari command untuk mengetahui posisi executable dari Python2.7, Python3.5 dan Python3.6. Tambahkan semua executable Python ini sebagai alternatif dari Python.

FindingPythonExecutable
Gambar 3. Lokasi Python executables pada direktori root OS Raspbian

Setelah mengetahui posisi yakni pada /usr/bin/ untuk Python2.7 dan Python3.5 dan pada /usr/local/bin/ pada Python3.6 yang baru diinstal. Lakukan proses  penambahan alternatif /usr/bin/python dengan menggunakan command sebagai berikut:

# update-alternatives --install /usr/bin/python python /usr/bin/python2.7 1
# update-alternatives --install /usr/bin/python python /usr/bin/python3.5 2
# update-alternatives --install /usr/bin/python python /usr/local/bin/python3.6 3

Setelah menambahkan sesuai urutan di atas, Python3.6 menjadi mode automatis dari python. Jika Anda memanggil python –version akan menunjukkan keluaran seperti pada Gambar 4.

UpdateAlternativesPython
Gambar 4. Pengubahan versi otomatis Python menjadi Python 3.6.4

Jika Anda ingin mengubah kembali default Python menjadi Python 2.7.13, Anda dapat melaksanakan command sebagai berikut:

# update-alternatives --list python
# update-alternatives --config python

Setelah mengeksekusi command di atas Anda akan diminta untuk memasukkan nomor yang ingin Anda pakai sebagai mode default Python, ketik 1 jika Anda ingin kembali menggunakan Python 2.7.13 karena satu atau dua hal (misalnya akibat library yang Anda pakai masih memerlukan Python 2.7). Setelah Anda memilih Python yang Anda inginkan, Anda dapat mengecek versi Python default dengan python –version dan hasilnya akan terlihat seperti pada Gambar 5.

RevertPythonTo27From36.PNG
Gambar 5. Pengembalian versi default Python menjadi Python 2.7.13

Anda dapat menggunakan command konfigurasi di atas untuk memilih versi Python yang Anda inginkan, Anda dapat melakukan ini jika versi Python terbaru sudah tersedia dan ingin menambahkannya ke Raspberry Pi. Jika Anda memiliki pertanyaan jangan segan untuk menambahkan pertanyaan Anda di Blog ini. Selamat mencoba!