Kelas ini mencakup Python dari dasar-dasarnya. Cocok untuk praktisi GIS tanpa latar belakang pemrograman atau pengetahuan python. Kursus ini akan memperkenalkan peserta pada konsep pemrograman dasar, pustaka untuk analisis spasial, API geospasial, dan teknik untuk membangun saluran pemrosesan data spasial
Pelajari lebih lanjut tentang pandangan saya tentang mengapa dan bagaimana mempelajari Python dalam Presentasi Pengantar ini
Contoh kode di kelas ini menggunakan berbagai dataset. Semua set data dan notebook Jupyter yang diperlukan diberikan kepada Anda dalam file conda activate python_foundation43. Buka zip file ini ke direktori - sebaiknya ke folder conda activate python_foundation44
Tidak terdaftar di kelas yang dipandu instruktur kami tetapi ingin mengerjakan materi sendiri?
Ada banyak cara untuk menginstal Python di sistem Anda. Banyak sistem operasi dilengkapi dengan distribusi Python bawaan juga. Jika Anda menggunakan perangkat lunak seperti QGIS - ini hadir dengan versi Python-nya sendiri. Bekerja pada proyek Python biasanya memerlukan penginstalan paket pihak ketiga (mis. e. peralatan). Karena paket-paket ini memiliki ketergantungan yang berbeda - mereka sering menyebabkan konflik dan kesalahan karena perbedaan versi Python di sistem Anda
Cara mudah dan andal untuk mendapatkan instalasi Python di sistem Anda adalah melalui Anaconda. Untuk kursus ini, kami akan menggunakan Anaconda3 Individual Edition untuk menginstal Python dan paket analisis spasial yang diperlukan
Banyak nama alat Python memiliki referensi ke dunia reptil. Manajer paket Python default disebut Pip yang mereferensikan proses penetasan telur. Menariknya, penamaan itu sendiri memiliki bahasa Python
Anaconda menyediakan perintah conda activate python_foundation_45 yang dapat dijalankan dari Command Prompt di Windows atau Terminal di Mac/Linux. Ini adalah metode yang disukai untuk menginstal paket yang diperlukan
- untuk Python3. 8 (atau versi yang lebih tinggi) untuk sistem operasi Anda. Setelah diunduh, klik dua kali penginstal dan instal ke direktori yang disarankan default. Pilih penginstalan untuk Just Me dan gunakan pengaturan default
Catatan. Jika nama pengguna Anda memiliki spasi, atau karakter non-bahasa Inggris, itu akan menyebabkan masalah. Dalam hal ini, Anda dapat menginstalnya ke jalur seperti conda activate python_foundation46
- (Pengguna Windows) Setelah diinstal, cari Anaconda Prompt, luncurkan. (pengguna Mac/Linux). Luncurkan jendela Terminal
- Merupakan praktik yang baik untuk membuat lingkungan baru untuk setiap proyek Python Anda. Lingkungan adalah ruang tempat Anda akan menginstal paket yang diperlukan. Banyak paket mungkin berisi persyaratan yang bertentangan, mencegah semuanya diinstal ke dalam satu lingkungan. Memiliki lingkungan terpisah mengisolasi proyek Anda dari masalah seperti itu. Kami sekarang akan mengetik perintah di terminal untuk membuat lingkungan baru. (Pengguna Windows) Cari Anaconda Prompt di Start Menu dan luncurkan. (pengguna Mac/Linux). Buka jendela Terminal. Masukkan perintah di bawah ini dan tekan Enter untuk membuat lingkungan baru Anda
- Sekarang Anda akan dimintai konfirmasi;
- Sekarang setelah lingkungan dibuat, Anda perlu mengaktifkannya. Ketik perintah di bawah ini dan tekan Enter. Setelah lingkungan diaktifkan, conda activate python_foundation_47 akan berubah menjadi conda activate python_foundation48
- Sekarang kami siap untuk menginstal paket yang diperlukan menggunakan perintah ________0______49. Pertama kita akan menginstal conda activate python_foundation50. Ini adalah modul yang memungkinkan Anda bekerja dengan data geospasial vektor dengan Python. Kami akan menggunakan saluran conda activate python_foundation_51 untuk menginstal paket. Opsi conda activate python_foundation52 akan melewati dialog konfirmasi. Masukkan perintah di bawah ini dan tekan Enter
Pelajari lebih lanjut tentang conda-forge
- Jika instalasi berhasil, Anda akan melihat pesan seperti yang ditunjukkan di sini
- conda activate python_foundation50 Instalasi agak rumit dan terkadang bisa gagal. Jadi sebaiknya periksa apakah itu dapat diimpor tanpa kesalahan. Kami akan menggunakan perintah conda activate python_foundation_54 dengan opsi conda activate python_foundation55 yang akan menjalankan pernyataan python. Masukkan perintah di bawah ini dan tekan Enter
- Jika instalasi geopanda Anda berhasil, perintah akan berjalan tanpa output apa pun. Jika tidak ada yang terjadi - itu berarti instalasi Anda berhasil. Jika Anda melihat kesalahan apa pun, harap ikuti
- Kami sekarang dapat menginstal paket lain yang diperlukan untuk kelas ini. Jalankan perintah di bawah ini untuk menginstal paket conda activate python_foundation_56, conda activate python_foundation57, conda activate python_foundation58 dan conda activate python_foundation59
- Setelah perintah selesai, Anda akan melihat layar seperti di bawah ini
- Lingkungan Python Anda sekarang sudah siap. Luncurkan aplikasi JupyterLab menggunakan perintah di bawah ini. Ini akan memulai dan menjalankan server lokal di sistem Anda dan terbuka di browser default Anda
jupyter-labCatatan. Jangan tutup permintaan anaconda Anda setelah JupyterLab terbuka. Anda harus tetap menjalankannya selama Anda ingin menggunakan JupyterLab
Perhatikan bahwa aplikasi JupyterLab hanya dapat menelusuri file di Drive tempat peluncurannya. Jika data Anda disimpan di drive lain, Anda memerlukan langkah tambahan untuk beralih ke drive tersebut sebelum meluncurkan Jupyterlab
Windows
Pada prompt perintah, ketik huruf drive diikuti dengan conda activate python_foundation60 dan tekan Enter untuk beralih ke drive
________24___22_______Mac/Linux
Periksa drive yang dipasang di sistem Anda dengan memasukkan conda activate python_foundation61. Setelah itu gunakan perintah conda activate python_foundation_62 untuk beralih ke drive
cd /Volumes/jupyter-lab- Tab browser baru akan terbuka dengan instance JupyterLab. Klik tombol Python 3 di bawah Notebook
- Masukkan pernyataan berikut di sel pertama dan klik tombol Jalankan. Jika tidak ada yang terjadi - itu berarti instalasi Anda berhasil. Lingkungan Anda sekarang siap untuk kursus. Jika Anda mendapatkan ImportError, ulangi langkah instalasi dengan hati-hati lagi
Men-debug Kesalahan Instalasi Python
Bagian berikut menjelaskan kesalahan penginstalan umum dengan perbaikan yang disarankan
Kesalahan OpenSSL
Pada banyak sistem Windows, Anda mungkin mendapatkan kesalahan seperti CondaSSLError. OpenSSL tampaknya tidak tersedia di mesin ini. OpenSSL diperlukan untuk mengunduh dan menginstal paket. Ini berarti modul OpenSSL hilang. Silakan unduh dan instal paket Win32/Win64 OpenSSL dan coba lagi
Jika kesalahan tetap ada, Anda dapat memperbaiki masalah secara manual dengan menyalin file DLL yang diperlukan di tempat yang benar seperti
Kesalahan indeks spasial RTtree
Saat mengimpor GeoPanda, Anda mungkin melihat kesalahan Tidak dapat menemukan atau memuat indeks spasial_c-64. dll. Kesalahan ini kemungkinan disebabkan oleh instalasi yang rusak. Kesalahan ini mudah diperbaiki dengan menghapus lingkungan conda dan menginstal ulang geopanda. Jalankan urutan perintah berikut untuk menghapus lingkungan
conda activate python_foundation_1Ikuti langkah-langkah instalasi dan instal ulang geopanda
Paket data kelas Anda berisi beberapa notebook Jupyter yang berisi kode dan latihan untuk kelas ini
- Luncurkan aplikasi JupyterLab. Ini akan membuka Browser Web Anda dan memuat aplikasi di tab baru. Dari panel sebelah kiri, navigasikan ke direktori tempat Anda mengekstrak paket data
- Notebook Jupyter memiliki conda activate python_foundation_63 ekstensi. Klik dua kali pada file buku catatan untuk membukanya. Kode di notebook dijalankan sel demi sel. Anda dapat memilih sel dan mengklik tombol Jalankan untuk mengeksekusi kode dan melihat hasilnya
- Di akhir setiap buku catatan, Anda akan menemukan sebuah latihan. Sebelum menambahkan sel baru dan mencoba menyelesaikan latihan, pastikan Anda membuka Run → Run All Cells untuk mengeksekusi semua kode di notebook. Melakukan hal ini akan memastikan semua variabel yang diperlukan tersedia untuk Anda gunakan dalam latihan
Buka buku catatan bernama conda activate python_foundation_64
Saat mempelajari bahasa pemrograman baru, biasanya mempelajari cara mencetak 'Hello World' terlebih dahulu. ’. Meskipun agak aneh, ini adalah langkah pertama yang berguna untuk mengetahui cara mengirim input ke program dan di mana melihat hasilnya. Dengan Python, Anda dapat menggunakan fungsi ________0______65 bawaan untuk mencetak salam conda activate python_foundation66
Buka buku catatan bernama conda activate python_foundation_67
String
String adalah rangkaian huruf, angka, dan tanda baca - atau biasa dikenal dengan teks
Di Python Anda dapat membuat string dengan mengetikkan huruf di antara tanda kutip tunggal atau ganda
conda activate python_foundation_2
Angka
Python dapat menangani beberapa jenis angka, tetapi dua yang paling umum adalah
- int, yang mewakili nilai integer seperti 100, dan
- float, yang mewakili angka yang memiliki bagian pecahan, seperti 0. 5
conda activate python_foundation_3
conda activate python_foundation_4
conda activate python_foundation5
Latihan
Kami memiliki variabel bernama conda activate python_foundation68 di bawah ini dengan nilai conda activate python_foundation69 - menunjukkan jarak garis lurus antara San Francisco dan New York dalam Kilometer. Buat variabel lain bernama conda activate python_foundation70 dan simpan nilai jarak dalam mil
- Petunjuk1. 1 mil = 1. 60934 kilometer
Tambahkan kode di sel di bawah ini dan jalankan. Outputnya harus 2569. 37
conda activate python_foundation_6
Buka buku catatan bernama conda activate python_foundation_71
Tupel
Tuple adalah urutan objek. Itu dapat memiliki sejumlah objek di dalamnya. Dalam tupel Python ditulis dengan tanda kurung bulat ()
conda activate python_foundation_7
Anda dapat mengakses setiap item berdasarkan posisinya, mis. e. indeks. Dalam pemrograman, penghitungan dimulai dari 0. Jadi item pertama memiliki indeks 0, item kedua memiliki indeks 1 dan seterusnya. Indeks harus diletakkan di dalam tanda kurung siku []
conda activate python_foundation_8
Daftar
Daftar mirip dengan tupel - tetapi dengan perbedaan utama. Dengan tuple, setelah dibuat, mereka tidak dapat diubah, mis. e. mereka tidak berubah. Tetapi daftar bisa berubah. Anda dapat menambah, menghapus, atau mengubah elemen dalam daftar. Dalam Python, daftar ditulis dengan tanda kurung siku []
conda activate python_foundation_9
Anda dapat mengakses elemen dari daftar menggunakan indeks dengan cara yang sama seperti tupel
Anda dapat memanggil fungsi conda activate python_foundation_72 dengan objek Python apa pun dan itu akan menghitung ukuran objek
Kita dapat menambahkan item ke daftar menggunakan metode ________0______73
conda install --channel conda-forge geopandas -y0
Karena daftar dapat diubah, Anda akan melihat bahwa ukuran daftar kini telah berubah
Metode lain yang berguna untuk daftar adalah conda activate python_foundation_74 - yang dapat mengurutkan elemen dalam daftar
conda install --channel conda-forge geopandas -y1
Penyortiran default dalam urutan menaik. Jika kami ingin mengurutkan daftar dalam urutan menurun, kami dapat memanggil fungsi dengan conda activate python_foundation75
conda install --channel conda-forge geopandas -y2
Set
Set seperti daftar, tetapi dengan beberapa properti yang menarik. Terutama bahwa mereka hanya berisi nilai-nilai unik. Ini juga memungkinkan untuk mengatur operasi - seperti persimpangan, penyatuan, dan perbedaan. Dalam praktiknya, himpunan biasanya dibuat dari daftar
conda install --channel conda-forge geopandas -y3
Set juga berguna untuk menemukan elemen unik dalam daftar. Mari gabungkan kedua daftar menggunakan metode ________0______76. Daftar yang dihasilkan akan memiliki elemen duplikat. Membuat satu set dari daftar menghapus elemen duplikat
conda install --channel conda-forge geopandas -y4
Kamus
Dalam kamus Python ditulis dengan kurung kurawal {}. Kamus memiliki kunci dan nilai. Dengan daftar, kita dapat mengakses setiap elemen berdasarkan indeksnya. Tapi kamus memudahkan untuk mengakses elemen dengan nama. Kunci dan nilai dipisahkan oleh titik dua
conda install --channel conda-forge geopandas -y5
Anda dapat mengakses item kamus dengan mengacu pada nama kuncinya, di dalam tanda kurung siku
Latihan
Dari kamus di bawah, bagaimana Anda mengakses nilai lintang dan bujur?
Output yang diharapkan akan terlihat seperti di bawah ini
conda install --channel conda-forge geopandas -y6conda install --channel conda-forge geopandas -y7
Buka buku catatan bernama conda activate python_foundation_77
conda install --channel conda-forge geopandas -y8
Melarikan diri karakter
Karakter tertentu spesial karena menggunakan bahasa Python itu sendiri. Misalnya, karakter kutipan ’ digunakan untuk mendefinisikan sebuah string. Apa yang Anda lakukan jika string Anda berisi karakter kutipan?
Dalam string Python, garis miring terbalik \ adalah karakter khusus, juga disebut karakter escape. Awalan karakter apa pun dengan garis miring terbalik membuatnya menjadi karakter biasa. (Petunjuk. Awalan backslash dengan backshalsh membuatnya biasa juga. )
Itu juga digunakan untuk mewakili karakter spasi tertentu, \n adalah baris baru, \t adalah tab dll
Hapus # dari sel di bawah dan jalankan
conda install --channel conda-forge geopandas -y_9
Kami dapat memperbaiki kesalahan dengan menghapus tanda kutip tunggal di dalam string
python -c "import geopandas"_0
Sebagai alternatif, Anda juga dapat menggunakan tanda kutip ganda jika string Anda berisi tanda kutip tunggal
python -c "import geopandas"_1
Bagaimana jika string kita berisi tanda kutip tunggal dan ganda?
Kita bisa menggunakan tanda kutip tiga. Melampirkan string dalam tanda kutip tiga memastikan tanda kutip tunggal dan ganda diperlakukan dengan benar
python -c "import geopandas"_2
Garis miring terbalik menimbulkan masalah lain saat berhadapan dengan jalur Windows
python -c "import geopandas"_3
Awalan string dengan r make adalah string Raw. Yang tidak menafsirkan garis miring terbalik sebagai karakter khusus
python -c "import geopandas"_4
Mencetak String
Cara modern untuk membuat string dari variabel menggunakan metode conda activate python_foundation78
python -c "import geopandas"_5
Anda juga dapat menggunakan metode format untuk mengontrol ketepatan angka
python -c "import geopandas"_6
Latihan
Gunakan pengiris string untuk mengekstrak dan mencetak derajat, menit, dan bagian kedua dari string di bawah ini. Outputnya harus sebagai berikut
python -c "import geopandas"_7python -c "import geopandas"_8
Buka buku catatan bernama conda activate python_foundation_79
Untuk Loop
A for loop digunakan untuk mengulang urutan. Urutan dapat berupa daftar, tupel, kamus, set, atau string
python -c "import geopandas"_9
Untuk mengulangi kamus, Anda dapat memanggil metode conda activate python_foundation80 di atasnya yang mengembalikan Tuple kunci dan nilai untuk setiap item
conda install --channel conda-forge geopy rasterio matplotlib jupyterlab -y0
Fungsi conda activate python_foundation_81 bawaan memungkinkan Anda membuat urutan angka yang dapat Anda ulangi
Fungsi rentang juga dapat menggunakan nomor awal dan akhir
conda install --channel conda-forge geopy rasterio matplotlib jupyterlab -y1
Python mendukung kondisi logis seperti sama, tidak sama, lebih besar dari dll. Kondisi ini dapat digunakan dalam beberapa cara, paling sering dalam pernyataan if dan loop
Pernyataan if ditulis dengan menggunakan kata kunci ________0______82
Catatan. Kesalahan yang sangat umum yang dibuat programmer adalah menggunakan = untuk mengevaluasi kondisi yang sama dengan. The = dalam Python berarti penugasan, tidak sama dengan. Selalu pastikan bahwa Anda menggunakan == untuk kondisi yang sama dengan
conda install --channel conda-forge geopy rasterio matplotlib jupyterlab -y2
Anda dapat menggunakan conda activate python_foundation83 kata kunci bersama dengan conda activate python_foundation82 untuk mencocokkan elemen yang tidak memenuhi ketentuan
conda install --channel conda-forge geopy rasterio matplotlib jupyterlab -y3
Python bergantung pada lekukan (spasi putih di awal baris) untuk menentukan cakupan dalam pernyataan for loop dan if. Jadi pastikan kode Anda terindentasi dengan benar
Anda dapat mengevaluasi serangkaian ketentuan menggunakan kata kunci ________0______85
Beberapa kriteria dapat digabungkan menggunakan kata kunci conda activate python_foundation_86 dan conda activate python_foundation87
conda install --channel conda-forge geopy rasterio matplotlib jupyterlab -y4
Pernyataan Kontrol
For-loop mengulang setiap item dalam urutan. Terkadang diinginkan untuk menghentikan eksekusi, atau melewatkan bagian tertentu dari for-loop. Python memiliki pernyataan khusus, conda activate python_foundation88, conda activate python_foundation89 dan conda activate python_foundation90
Pernyataan conda activate python_foundation_88 akan menghentikan loop dan keluar darinya
conda install --channel conda-forge geopy rasterio matplotlib jupyterlab -y5
Pernyataan conda activate python_foundation_89 akan melewatkan bagian sisa dari perulangan dan melanjutkan ke iterasi berikutnya
conda install --channel conda-forge geopy rasterio matplotlib jupyterlab -y6
Pernyataan conda activate python_foundation_90 tidak melakukan apa-apa. Ini berguna ketika beberapa kode diperlukan untuk menyelesaikan sintaks, tetapi Anda tidak ingin kode apa pun dieksekusi. Ini biasanya digunakan sebagai placeholder ketika suatu fungsi tidak lengkap
conda install --channel conda-forge geopy rasterio matplotlib jupyterlab -y7
Latihan
Tantangan Fizz Buzz
Tulis program yang mencetak angka dari 1 sampai 100 dan untuk kelipatan 3 cetak Fizz sebagai pengganti angka dan untuk kelipatan 5 cetak Buzz. Jika habis dibagi keduanya, cetak FizzBuzz
Jadi outputnya harus seperti di bawah ini
conda activate python_foundation_94
Memecah masalah lebih lanjut, kita perlu membuat for-loop dengan kondisi berikut
- Jika angkanya merupakan kelipatan dari 3 dan 5 (mis. e. 15), cetak FizzBuzz
- Jika angkanya kelipatan 3, cetak Fizz
- Jika angkanya kelipatan 5, cetak Buzz
- Kalau tidak, cetak nomornya
Petunjuk. Lihat sel kode di bawah ini. Gunakan operator modulus % untuk memeriksa apakah suatu bilangan habis dibagi dengan yang lain. conda activate python_foundation_95 sama dengan 0, artinya habis dibagi 5
conda install --channel conda-forge geopy rasterio matplotlib jupyterlab -y8
Buka buku catatan bernama conda activate python_foundation_96
Fungsi adalah blok kode yang mengambil satu atau lebih input, melakukan beberapa pemrosesan padanya dan mengembalikan satu atau lebih output. Kode di dalam fungsi hanya berjalan saat dipanggil
Suatu fungsi didefinisikan menggunakan kata kunci conda activate python_foundation_97
conda install --channel conda-forge geopy rasterio matplotlib jupyterlab -y_9Fungsi berguna karena memungkinkan kita untuk menangkap logika kode kita dan kita dapat menjalankannya dengan masukan yang berbeda tanpa harus menulis kode yang sama berulang kali.
jupyter-lab_0
Fungsi dapat mengambil banyak argumen. Mari tulis fungsi untuk mengonversi koordinat dari derajat, menit, detik ke derajat desimal. Konversi ini cukup sering diperlukan saat bekerja dengan data yang dikumpulkan dari perangkat GPS
- 1 derajat sama dengan 60 menit
- 1 menit sama dengan 60 detik (3600 detik)
Untuk menghitung derajat desimal, kita dapat menggunakan rumus di bawah ini
Jika derajatnya positif
conda activate python_foundation_98
Jika derajat negatif
conda activate python_foundation_99
jupyter-lab_1
jupyter-lab_2
Latihan
Diberi string koordinat dengan nilai dalam derajat, menit dan detik, ubahlah menjadi derajat desimal dengan memanggil fungsi conda install --channel conda-forge geopandas -y00
jupyter-lab_3
jupyter-lab_4
Buka buku catatan bernama conda install --channel conda-forge geopandas -y_01
Python hadir dengan banyak modul bawaan yang menawarkan solusi siap pakai untuk masalah pemrograman umum. Untuk menggunakan modul ini, Anda harus menggunakan kata kunci conda install --channel conda-forge geopandas -y02. Setelah diimpor dalam skrip Python Anda, Anda dapat menggunakan fungsi yang disediakan oleh modul dalam skrip Anda
Kami akan menggunakan modul conda install --channel conda-forge geopandas -y_03 bawaan yang memungkinkan kami menggunakan fungsi matematika tingkat lanjut
Anda juga dapat mengimpor fungsi atau konstanta tertentu dari modul seperti di bawah ini
jupyter-lab_5
Menghitung Jarak
Diberikan 2 titik dengan koordinat Lintang dan Bujurnya, Rumus Haversine menghitung jarak garis lurus dalam meter, dengan asumsi bahwa Bumi berbentuk bola
Rumusnya cukup sederhana untuk diimplementasikan dalam spreadsheet juga. Jika Anda penasaran, lihat postingan saya tentang penggunaan rumus ini untuk menghitung jarak dalam spreadsheet
Kita dapat menulis sebuah fungsi yang menerima sepasang koordinat asal dan tujuan dan menghitung jaraknya
jupyter-lab_6
jupyter-lab_7
jupyter-lab_8
Temukan Telur Paskah Python
Pemrogram suka menyembunyikan lelucon rahasia dalam program mereka untuk senjata. Ini dikenal sebagai Telur Paskah. Python memiliki telur paskah yang dapat Anda lihat saat mencoba mengimpor modul bernama conda install --channel conda-forge geopandas -y04. Coba tulis perintah conda install --channel conda-forge geopandas -y_05 di bawah ini
Mari kita coba satu lagi. Coba impor modul conda install --channel conda-forge geopandas -y_06
Berikut daftar lengkap telur paskah dengan Python
Latihan
Temukan koordinat 2 kota terdekat dan hitung jarak antara keduanya dengan memanggil fungsi conda install --channel conda-forge geopandas -y07 di bawah ini
jupyter-lab_9
Buka buku catatan bernama conda install --channel conda-forge geopandas -y_08
Python memiliki ekosistem modul pihak ketiga yang berkembang pesat (mis. e. perpustakaan atau paket) tersedia untuk Anda instal. Ada ratusan ribu modul semacam itu yang tersedia untuk Anda instal dan gunakan
Menginstal perpustakaan pihak ketiga
Python hadir dengan manajer paket bernama conda install --channel conda-forge geopandas -y09. Itu dapat menginstal semua paket yang terdaftar di PyPI (Python Package Index). Untuk menginstal paket menggunakan pip, Anda perlu menjalankan perintah seperti berikut di Terminal atau CMD prompt
conda install --channel conda-forge geopandas -y10
Untuk kursus ini, kami menggunakan platform Anancoda - yang hadir dengan pengelola paketnya sendiri bernama conda activate python_foundation45. Anda dapat menggunakan Anaconda Navigator untuk mencari dan menginstal paket. Atau jalankan perintah seperti berikut di Terminal atau CMD Prompt
conda activate python_foundation_49
Lihat perbandingan pip dan conda ini untuk memahami perbedaannya
Menghitung Jarak
Kami telah menginstal paket conda activate python_foundation56 di lingkungan kami. conda activate python_foundation56 hadir dengan fungsi yang telah menerapkan banyak rumus perhitungan jarak
- conda install --channel conda-forge geopandas -y_15. Menghitung jarak pada lingkaran besar menggunakan rumus haversine
- conda install --channel conda-forge geopandas -y_16. Menghitung jarak menggunakan ellipsoid yang dipilih menggunakan rumus Vincenty
D:0
Latihan
Ulangi latihan perhitungan jarak dari modul sebelumnya tetapi lakukan perhitungan menggunakan perpustakaan geopy
D:1
Buka buku catatan bernama conda install --channel conda-forge geopandas -y_17
API, atau Antarmuka Program Aplikasi, memungkinkan satu program untuk berbicara dengan program lain. Banyak situs web atau layanan menyediakan API sehingga Anda dapat meminta informasi secara otomatis
Untuk pemetaan dan analisis spasial, penggunaan API sangatlah penting. Untuk waktu yang lama, Google Maps API adalah API paling populer di web. API memungkinkan Anda untuk mengkueri server web dan mendapatkan hasil tanpa mengunduh data atau menjalankan perhitungan di mesin Anda
Kasus penggunaan umum untuk menggunakan API untuk analisis spasial adalah
- Mendapatkan petunjuk arah / perutean
- Optimalisasi rute
- Geocoding
- Mengunduh data
- Mendapatkan data cuaca waktu nyata
- …
Penyediaan API semacam itu memiliki banyak cara untuk mengimplementasikan API. Ada standar seperti REST, SOAP, GraphQL dll. REST adalah standar paling populer untuk API web, dan untuk API geospasial. REST API digunakan melalui HTTP dan karenanya disebut API web
Memahami JSON dan GeoJSON
JSON adalah singkatan dari Notasi Objek JavaScript. Ini adalah format untuk menyimpan dan mengirim data, dan merupakan standar de-facto untuk pertukaran data oleh API. GeoJSON adalah ekstensi dari format JSON yang biasa digunakan untuk merepresentasikan data spasial
Python memiliki modul conda install --channel conda-forge geopandas -y_18 bawaan yang memiliki metode untuk membaca data json dan mengubahnya menjadi objek Python, dan sebaliknya. Dalam contoh ini, kami menggunakan modul conda install --channel conda-forge geopandas -y_19 untuk menanyakan API yang dengan mudah melakukan konversi untuk kami. Tetapi akan berguna untuk mempelajari dasar-dasar bekerja dengan JSON dengan Python
Data GeoJSON berisi fitur, dimana setiap fitur memiliki beberapa properti dan geometri
D:2
Untuk mengonversi string JSON ke objek Python (mis. e. mem-parsing JSON), kita dapat menggunakan metode conda install --channel conda-forge geopandas -y20
D:3
Sekarang kita telah mem-parsing string GeoJSON dan memiliki objek Python, kita dapat mengekstrak informasi darinya. Data disimpan dalam FeatureCollection - yang merupakan daftar fitur. Dalam contoh kami, kami hanya memiliki 1 fitur di dalam kumpulan fitur, sehingga kami dapat mengaksesnya dengan menggunakan indeks 0
D:4
Representasi fitur adalah kamus, dan masing-masing item dapat diakses menggunakan tombol
D:5
Modul conda install --channel conda-forge geopandas -y_19
Untuk menanyakan server, kami mengirim permintaan GET dengan beberapa parameter dan server mengirimkan respons kembali. Modul conda install --channel conda-forge geopandas -y_19 memungkinkan Anda mengirim permintaan HTTP dan mem-parsing respons menggunakan Python
Respon berisi data yang diterima dari server. Ini berisi status_code HTTP yang memberi tahu kami jika permintaan berhasil. Kode HTTP 200 adalah singkatan dari Sucess OK
D:6
Menghitung Jarak menggunakan OpenRouteService API
OpenRouteService (ORS) menyediakan API gratis untuk perutean, matriks jarak, geocoding, pengoptimalan rute, dll. menggunakan data OpenStreetMap. Kami akan belajar cara menggunakan API ini melalui Python dan mendapatkan jarak dunia nyata antar kota
Hampir semua API mengharuskan Anda untuk mendaftar dan mendapatkan kunci. Kunci digunakan untuk mengidentifikasi Anda dan menerapkan batas penggunaan sehingga Anda tidak membebani server. Kami akan mendapatkan kunci dari OpenRouteServie sehingga kami dapat menggunakan API mereka
Kunjungi dan buat akun. Setelah akun Anda diaktifkan, kunjungi Dasbor Anda dan minta token. Pilih Standar sebagai jenis Token dan masukkan conda install --channel conda-forge geopandas -y23 sebagai nama Token. Klik BUAT TOKEN. Setelah dibuat, salin string panjang yang ditampilkan di bawah Kunci dan masukkan di bawah
D:7
Kami akan menggunakan OpenRouteServices. Layanan ini menampilkan petunjuk arah mengemudi, bersepeda, atau berjalan kaki antara titik asal dan tujuan yang diberikan
D:8
Kita dapat membaca conda install --channel conda-forge geopandas -y_24 dalam format JSON dengan memanggil metode conda install --channel conda-forge geopandas -y25 di atasnya
Responsnya adalah objek GeoJSON yang mewakili arah berkendara antara 2 titik. Objek adalah kumpulan fitur dengan hanya 1 fitur. Kita dapat mengaksesnya menggunakan indeks 0. Properti fitur berisi conda install --channel conda-forge geopandas -y_26 informasi yang memiliki data yang kami butuhkan
D:_9
Kita dapat mengekstrak conda install --channel conda-forge geopandas -y_27 dan mengubahnya menjadi kilometer
jupyter-lab_0
Anda dapat membandingkan jarak ini dengan jarak garis lurus dan melihat perbedaannya
Pembatasan Tingkat API
Banyak API web menerapkan pembatasan kecepatan - memungkinkan permintaan dalam jumlah terbatas dari waktu ke waktu. Dengan komputer, mudah untuk menulis perulangan for, atau membuat beberapa program mengirim ratusan atau ribuan kueri per detik. Server mungkin tidak dikonfigurasi untuk menangani volume tersebut. Jadi penyedia menentukan batasan berapa banyak dan seberapa cepat kueri dapat dikirim
OpenRouteService mencantumkan beberapa Pembatasan API. Paket gratis memungkinkan hingga 40 permintaan arah/menit
Ada banyak perpustakaan yang tersedia untuk menerapkan berbagai strategi untuk membatasi laju. Tetapi kita dapat menggunakan modul conda install --channel conda-forge geopandas -y_28 bawaan untuk menerapkan metode pembatasan laju yang sangat sederhana
Latihan
Di bawah sel berisi kamus dengan 3 kota tujuan dan koordinatnya. Tulis conda install --channel conda-forge geopandas -y29 loop untuk mengulangi conda install --channel conda-forge geopandas -y30 kamus dan panggil fungsi conda install --channel conda-forge geopandas -y31 untuk mencetak jarak mengemudi nyata antara San Fransico dan setiap kota. Beri nilai batasi kueri Anda dengan menambahkan conda install --channel conda-forge geopandas -y32 di antara panggilan fungsi yang berurutan
jupyter-lab_1
Buka buku catatan bernama conda install --channel conda-forge geopandas -y_33
Python menyediakan fungsi bawaan untuk membaca dan menulis file
Untuk membaca sebuah file, kita harus mengetahui path dari file tersebut pada disk. Python memiliki modul bernama conda install --channel conda-forge geopandas -y34 yang memiliki fungsi pembantu yang membantu menangani sistem operasi. Keuntungan menggunakan modul conda install --channel conda-forge geopandas -y_34 adalah kode yang Anda tulis akan berfungsi tanpa perubahan pada sistem operasi apa pun yang didukung
Untuk membuka sebuah file, kita perlu mengetahui path ke file tersebut. Kami sekarang akan membuka dan membaca file conda install --channel conda-forge geopandas -y36 yang terletak di paket data Anda. Dalam paket data Anda, folder data ada di direktori ________12______37. Kita dapat membuat jalur relatif ke file menggunakan metode conda install --channel conda-forge geopandas -y38
jupyter-lab_2
Untuk membuka file, gunakan fungsi ________12______39 bawaan. Kami menentukan mode sebagai conda install --channel conda-forge geopandas -y_40 yang berarti hanya-baca. Jika kita ingin mengubah isi file atau menulis file baru, kita akan membukanya dengan mode conda install --channel conda-forge geopandas -y41
File input kami juga berisi karakter Unicode, jadi kami menetapkan conda install --channel conda-forge geopandas -y42 sebagai penyandian
Fungsi open() mengembalikan objek file. Kita dapat memanggil metode conda install --channel conda-forge geopandas -y_43 untuk membaca konten file, satu baris dalam satu waktu
Merupakan praktik yang baik untuk selalu menutup file setelah selesai. Untuk menutup file, kita harus memanggil metode conda install --channel conda-forge geopandas -y44 pada objek file
jupyter-lab_3
Memanggil conda install --channel conda-forge geopandas -y_43 untuk setiap baris file itu membosankan. Idealnya, kami ingin mengulang semua baris dalam file. Anda dapat mengulang melalui objek file seperti di bawah ini
Kita dapat mengulang setiap baris file dan meningkatkan variabel conda install --channel conda-forge geopandas -y46 dengan 1 untuk setiap iterasi loop. Pada akhirnya, nilai variabel hitungan akan sama dengan jumlah baris dalam file
jupyter-lab_4
Latihan
Cetak 5 baris pertama file
- Petunjuk. Gunakan pernyataan istirahat
jupyter-lab_5
Buka buku catatan bernama conda install --channel conda-forge geopandas -y_47
Comma-separated Values (CSV) adalah format file berbasis teks yang paling umum untuk berbagi data geospasial. Struktur file adalah 1 record data per baris, dengan masing-masing kolom dipisahkan oleh koma
Secara umum, karakter pemisah disebut delimiter. Pembatas populer lainnya termasuk tab (\t), titik dua (. ) dan karakter titik koma (;).
Membaca file CSV dengan benar mengharuskan kita untuk mengetahui pembatas mana yang digunakan, bersama dengan karakter kutipan untuk mengelilingi nilai bidang yang berisi spasi dari karakter pembatas. Karena membaca file teks yang dibatasi adalah operasi yang sangat umum, dan dapat menjadi rumit untuk menangani semua kasus sudut, Python hadir dengan perpustakaannya sendiri yang disebut conda install --channel conda-forge geopandas -y48 untuk kemudahan membaca dan menulis file CSV. Untuk menggunakannya, Anda hanya perlu mengimpornya
Cara yang disukai untuk membaca file CSV menggunakan metode ________12______49. Yang secara langsung membaca setiap baris dan membuat kamus darinya - dengan nama kolom sebagai kunci dan nilai kolom sebagai nilai. Mari kita lihat cara membaca file menggunakan metode conda install --channel conda-forge geopandas -y50
jupyter-lab_6
jupyter-lab_7
Menggunakan fungsi conda install --channel conda-forge geopandas -y_51
Saat melakukan iterasi pada suatu objek, sering kali kita membutuhkan penghitung. Kita melihat pada contoh sebelumnya, bagaimana menggunakan variabel seperti conda install --channel conda-forge geopandas -y46 dan meningkatkannya dengan setiap iterasi. Ada cara mudah untuk melakukannya menggunakan fungsi conda install --channel conda-forge geopandas -y51 bawaan
jupyter-lab_8
Kita dapat menggunakan enumerate() pada objek iterable apa pun dan mendapatkan tuple dengan indeks dan nilai iterable dengan setiap iterasi. Mari kita gunakan untuk mencetak 5 baris pertama dari objek DictReader
jupyter-lab_9
Menggunakan conda install --channel conda-forge geopandas -y_54 pernyataan
Kode untuk penanganan file mengharuskan kita membuka file, melakukan sesuatu dengan objek file, lalu menutup file. Itu membosankan dan mungkin Anda lupa memanggil conda install --channel conda-forge geopandas -y44 pada file. Jika kode untuk memproses mengalami kesalahan, file bukan properti tertutup, ini dapat menyebabkan bug - terutama saat menulis file
Cara yang disukai untuk bekerja dengan objek file menggunakan pernyataan conda install --channel conda-forge geopandas -y54. Ini menghasilkan kode yang lebih sederhana dan lebih jelas - yang juga memastikan objek file ditutup dengan benar jika terjadi kesalahan
Seperti yang Anda lihat di bawah, kami membuka file dan menggunakan objek file conda install --channel conda-forge geopandas -y57 dalam pernyataan conda install --channel conda-forge geopandas -y54. Python menangani penutupan file saat eksekusi kode di dalam pernyataan selesai
cd /Volumes/0
Memfilter baris
Kita dapat menggunakan pernyataan bersyarat saat mengulang baris, untuk memilih dan memproses baris yang memenuhi kriteria tertentu. Mari hitung berapa banyak kota dari negara tertentu yang ada di file
Ganti variabel conda install --channel conda-forge geopandas -y_59 dengan negara asal Anda di bawah ini
cd /Volumes/1
Menghitung jarak
Mari terapkan keterampilan yang telah kita pelajari sejauh ini untuk menyelesaikan masalah yang lengkap. Kami ingin membaca file conda install --channel conda-forge geopandas -y60, menemukan semua kota dalam negara asal, menghitung jarak ke setiap kota dari kota asal dan menulis hasilnya ke file CSV baru
Pertama kita menemukan koordinat keluar dipilih conda install --channel conda-forge geopandas -y61 dari file. Ganti conda install --channel conda-forge geopandas -y_61 di bawah ini dengan kampung halaman Anda atau kota besar di negara Anda. Perhatikan bahwa kami menggunakan bidang conda install --channel conda-forge geopandas -y_63 untuk perbandingan nama kota, jadi pastikan variabel conda install --channel conda-forge geopandas -y61 berisi versi ASCII dari nama kota
cd /Volumes/2
Sekarang kita dapat mengulang file, menemukan kota di negara asal yang dipilih dan memanggil fungsi conda install --channel conda-forge geopandas -y65 untuk menghitung jarak. Pada kode di bawah ini, kami hanya menghitung 5 kecocokan pertama
cd /Volumes/3
Menulis file
Daripada mencetak hasilnya, mari tulis hasilnya ke file baru. Mirip dengan csv. DictReader(), ada pendamping conda install --channel conda-forge geopandas -y66 metode untuk menulis file. We create a conda install --channel conda-forge geopandas -y67 object and then write rows to it using the conda install --channel conda-forge geopandas -y68 method
Pertama kita buat folder conda install --channel conda-forge geopandas -y_69 untuk menyimpan hasilnya. Pertama-tama kita dapat memeriksa apakah folder tersebut ada dan jika tidak ada, kita dapat membuatnya
cd /Volumes/4
cd /Volumes/5
Di bawah ini adalah kode lengkap untuk tugas kita membaca file, memfilternya, menghitung jarak dan menulis hasilnya ke file
cd /Volumes/6
Latihan
Ganti variabel conda install --channel conda-forge geopandas -y_61 dan conda install --channel conda-forge geopandas -y59 dengan kota asal dan negara asal Anda sendiri dan buat file CSV yang berisi jarak dari kota asal Anda ke setiap kota lain di negara Anda
Buka buku catatan bernama conda install --channel conda-forge geopandas -y_72
Pandas adalah perpustakaan yang kuat untuk bekerja dengan data. Pandas provides fast and easy functions for reading data from files, and analyzing it
Panda didasarkan pada perpustakaan lain yang disebut conda install --channel conda-forge geopandas -y73 - yang banyak digunakan dalam komputasi ilmiah. Panda memperluas conda install --channel conda-forge geopandas -y_73 dan menyediakan tipe data baru seperti Indeks, Seri, dan Bingkai Data
Implementasi panda sangat cepat dan efisien - jadi dibandingkan dengan metode pemrosesan data lainnya - menggunakan conda install --channel conda-forge geopandas -y75 hasilnya adalah kode yang lebih sederhana dan pemrosesan cepat. We will now re-implement our code for reading a file and computing distance using Pandas
By convention, conda install --channel conda-forge geopandas -y75 is commonly imported as conda install --channel conda-forge geopandas -y77
Reading Files
jupyter-lab_6
A DataFrame is the most used Pandas object. You can think of a DataFrame being equivalent to a Spreadsheet or an Attribute Table of a GIS layer
Pandas provide easy methods to directly read files into a DataFrame. You can use methods such as conda install --channel conda-forge geopandas -y78, conda install --channel conda-forge geopandas -y79, conda install --channel conda-forge geopandas -y80 and so forth to read a variety of formats. Here we will read the conda install --channel conda-forge geopandas -y36 file using conda install --channel conda-forge geopandas -y78 method
Once the file is read and a DataFrame object is created, we can inspect it using the conda install --channel conda-forge geopandas -y83 method
There is also a conda install --channel conda-forge geopandas -y84 method that shows basic information about the dataframe, such as number of rows/columns and data types of each column
Filtering Data
Pandas have many ways of selecting and filtered data from a dataframe. We will now see how to use the to filter the dataframe to rows that match a condition
cd /Volumes/8
cd /Volumes/9
Filtered dataframe is a just view of the original data and we cannot make changes to it. We can save the filtered view to a new dataframe using the conda install --channel conda-forge geopandas -y85 method
jupyter-lab_0
jupyter-lab_1
jupyter-lab_2
To locate a particular row or column from a dataframe, Pandas providea conda install --channel conda-forge geopandas -y86 and conda install --channel conda-forge geopandas -y87 methods - that allows you to locate particular slices of data. Learn about in Pandas. Here we can use conda install --channel conda-forge geopandas -y87 to find the row matching the conda install --channel conda-forge geopandas -y61 name. Since conda install --channel conda-forge geopandas -y87 uses index, the 0 here refers to the first row
jupyter-lab_3
Now that we have filtered down the data to a single row, we can select individual column values using column names
jupyter-lab_4
Performing calculations
Let’s learn how to do calculations on a dataframe. We can iterate over each row and perform some calculations. But pandas provide a much more efficient way. You can use the conda install --channel conda-forge geopandas -y91 method to run a function on each row. This is fast and makes it easy to complex computations on large datasets
The conda install --channel conda-forge geopandas -y91 function takes 2 arguments. A function to apply, and the axis along which to apply it. conda install --channel conda-forge geopandas -y93 means it will be applied to columns and conda install --channel conda-forge geopandas -y94 means it will apply to rows
jupyter-lab_5
We can add these results to the dataframe by simply assigning the result to a new column
jupyter-lab_6
We are done with our analysis and ready to save the results. We can further filter the results to only certain columns
jupyter-lab_7
Let’s rename the conda install --channel conda-forge geopandas -y63 column to give it a more readable name
jupyter-lab_8
Now that we have added filtered the original data and computed the distance for all cities, we can save the resulting dataframe to a file. Similar to read methods, Pandas have several write methods, such as conda install --channel conda-forge geopandas -y96, conda install --channel conda-forge geopandas -y97 etc
Here we will use the conda install --channel conda-forge geopandas -y96 method to write a CSV file. Pandas assigns an index column (unique integer values) to a dataframe by default. We specify conda install --channel conda-forge geopandas -y99 so that this index is not added to our output
jupyter-lab_9
Latihan
You will notice that the output file contains a row with the conda install --channel conda-forge geopandas -y61 as well. Ubah kerangka data python -c "import geopandas"_01 untuk menghapus baris ini dan menulis hasilnya ke file
Petunjuk. Gunakan metode pemfilteran Boolean yang telah kita pelajari sebelumnya untuk memilih baris yang tidak cocok dengan conda install --channel conda-forge geopandas -y61
conda activate python_foundation_00
GeoPandas memperluas perpustakaan Pandas untuk mengaktifkan operasi spasial. Ini menyediakan tipe data baru seperti GeoDataFrame dan GeoSeries yang merupakan subclass dari Pandas DataFrame and Series dan memungkinkan pemrosesan data vektor yang efisien dengan Python
GeoPanda memanfaatkan banyak perpustakaan spasial lain yang banyak digunakan - tetapi GeoPanda menyediakan antarmuka yang mirip dengan Panda yang membuatnya intuitif untuk digunakan dengan analisis spasial. GeoPandas dibangun di atas pustaka berikut yang memungkinkannya sadar spasial
- Berbentuk untuk operasi geometris (mis. e. penyangga, persimpangan dll. )
- PyProj untuk bekerja dengan proyeksi
- Fiona untuk input dan output file, yang didasarkan pada pustaka GDAL/OGR yang banyak digunakan
Kami akan melakukan tugas geoproses yang menampilkan berbagai fitur perpustakaan ini dan menunjukkan cara melakukan pemrosesan data geo dengan Python. Tugasnya adalah mengambil lapisan data jalan dari OpenStreetMap dan menghitung total panjang Jalan Raya Nasional untuk setiap distrik di negara bagian. Masalahnya dijelaskan secara rinci dalam kursus saya dan menunjukkan langkah-langkah yang diperlukan untuk melakukan analisis ini di QGIS. Kami akan mereplikasi contoh ini dengan Python
Dengan konvensi, conda activate python_foundation_50 umumnya diimpor sebagai python -c "import geopandas"04
Membaca Data Spasial
conda activate python_foundation_01
GeoPandas memiliki metode python -c "import geopandas"_05 yang mampu membuka berbagai macam dataset vektor, termasuk file zip. Di sini kita akan membuka GeoPackage python -c "import geopandas"06 dan membaca layer bernama python -c "import geopandas"07. Hasil dari metode baca adalah GeoDataFrame
conda activate python_foundation_02
GeoDataFrame berisi kolom khusus yang disebut geometri. Semua operasi spasial pada DataFrame diterapkan pada kolom geometri. Kolom geometri dapat diakses menggunakan atribut python -c "import geopandas"08
conda activate python_foundation_03
Filtering Data
Seseorang dapat menggunakan metode pemfilteran Panda standar untuk memilih subset dari GeoDataFrame. Selain itu, GeoPandas juga menyediakan cara untuk mensubset data berdasarkan kotak pembatas dengan pengindeks python -c "import geopandas"09
Untuk analisis kami, kami perlu menerapkan filter untuk mengekstrak hanya segmen jalan dengan atribut python -c "import geopandas"10 dimulai dengan 'NH' - menunjukkan jalan raya nasional. Kita dapat menerapkan pemfilteran boolean menggunakan metode python -c "import geopandas"11 Panda dengan ekspresi reguler
conda activate python_foundation_04
Bekerja dengan Proyeksi
Berurusan dengan proyeksi adalah aspek kunci dalam bekerja dengan data spasial. GeoPandas menggunakan pustaka python -c "import geopandas"_12 untuk menetapkan dan mengelola proyeksi. Setiap GeoDataFrame sebagai python -c "import geopandas"13 atribut yang berisi info proyeksi. Kumpulan data sumber kami ada di EPSG. 4326 WGS84 CRS
Karena tugas kita adalah menghitung panjang garis, kita perlu menggunakan Projected CRS. Kita dapat menggunakan metode python -c "import geopandas"_14 untuk memproyeksi ulang GeoDataFrame
conda activate python_foundation_05
Sekarang lapisan telah diproyeksikan ulang, kita dapat menghitung panjang setiap geometri menggunakan atribut python -c "import geopandas"15. Hasilnya akan dalam meter. Kita dapat menambahkan panjang garis di kolom baru bernama python -c "import geopandas"15
conda activate python_foundation_06
Kami dapat menerapkan operasi statistik pada kolom DataFrame. Di sini kita dapat menghitung panjang total jalan raya nasional di negara bagian dengan memanggil metode python -c "import geopandas"17
conda activate python_foundation_07
Melakukan Penggabungan spasial
Ada dua cara untuk menggabungkan kumpulan data di geopanda - gabungan tabel dan gabungan spasial. Untuk tugas kita, kita membutuhkan informasi tentang distrik mana yang dimiliki setiap ruas jalan. Hal ini dapat dicapai dengan menggunakan lapisan spasial lain untuk kabupaten dan melakukan penggabungan spasial untuk mentransfer atribut lapisan kabupaten ke segmen jalan yang cocok.
python -c "import geopandas"_06 berisi lapisan yang disebut python -c "import geopandas"19 dengan batas distrik dan nama
conda activate python_foundation_08
Sebelum menggabungkan layer ini ke jalan, kita harus memproyeksikan ulang agar cocok dengan CRS layer jalan
conda activate python_foundation_09
Penggabungan spasial dilakukan menggunakan metode python -c "import geopandas"20. Dibutuhkan 2 argumen inti
- python -c "import geopandas"_21. Predikat spasial untuk memutuskan objek mana yang akan digabungkan. Pilihannya berpotongan, di dalam dan berisi
- python -c "import geopandas"_22. Jenis bergabung untuk melakukan. Pilihannya ada kiri, kanan dan dalam
Untuk tugas kita, kita dapat melakukan join kiri dan menambahkan atribut distrik yang memotong jalan
conda activate python_foundation_10
Statistik Grup
Bingkai geodata yang dihasilkan sekarang memiliki kolom yang cocok dari fitur distrik yang berpotongan. Sekarang kita dapat menjumlahkan panjang jalan dan mengelompokkannya berdasarkan distrik. Jenis Statistik Grup ini dilakukan dengan menggunakan metode python -c "import geopandas"23 Panda
conda activate python_foundation_11
Hasil dari metode python -c "import geopandas"_23 adalah Seri Pandas. Itu dapat disimpan ke file CSV menggunakan metode conda install --channel conda-forge geopandas -y96
conda activate python_foundation_12
Latihan
Sebelum menulis output ke file, bulatkan angka jarak ke bilangan bulat
Buka buku catatan bernama python -c "import geopandas"_26
Operasi umum dalam analisis spasial adalah mengambil data non-spasial, seperti file CSV, dan membuat dataset spasial darinya menggunakan informasi koordinat yang terdapat dalam file. GeoPandas menyediakan cara mudah untuk mengambil data dari file teks terbatas, membuat geometri, dan menulis hasilnya sebagai kumpulan data spasial
Kami akan membaca file tempat yang dibatasi tab, memfilternya ke kelas fitur, membuat GeoDataFrame, dan mengekspornya sebagai file GeoPackage
conda activate python_foundation_13
conda activate python_foundation_14
Membaca File yang Dibatasi Tab
Data sumber berasal dari GeoNames - database gratis dan terbuka dari nama geografis dunia. Ini adalah database besar yang berisi jutaan catatan per negara. Data didistribusikan sebagai file teks tingkat negara dalam format tab-delimited. File tidak berisi baris header dengan nama kolom, jadi kita perlu menentukannya saat membaca data. Format data dijelaskan secara rinci di halaman Ekspor Data
Kami menentukan pemisah sebagai \t (tab) sebagai argumen untuk metode conda install --channel conda-forge geopandas -y78. Perhatikan bahwa file untuk AS memiliki lebih dari 2 juta catatan
conda activate python_foundation_15
Filtering Data
Data input sebagai kolom python -c "import geopandas"_28 mengkategorikan tempat menjadi 9 kelas fitur. Kita dapat memilih semua baris dengan nilai python -c "import geopandas"29 dengan kategori mountain,hill,rock…
conda activate python_foundation_16
Membuat Geometri
GeoPandas memiliki fungsi conveinent python -c "import geopandas"30 yang membuat kolom Geometri dari koordinat X dan Y. Kita kemudian dapat mengambil kerangka data Pandas dan membuat GeoDataFrame dengan menentukan CRS dan kolom geometri
conda activate python_foundation_17
Menulis File
Kita dapat menulis GeoDataFrame yang dihasilkan ke salah satu format data vektor yang didukung. Di sini kami menulisnya sebagai file GeoPackage baru
Anda dapat membuka geopackage yang dihasilkan di GIS dan melihat datanya
conda activate python_foundation_18
Latihan
Paket data berisi beberapa file teks geonames dari berbagai negara di folder python -c "import geopandas"31. Tulis kode untuk membaca semua file, gabungkan dan ekstrak fitur gunung ke satu geopackage
- Petunjuk1. Gunakan metode python -c "import geopandas"_32 untuk mendapatkan semua file dalam direktori
- Petunjuk2. Gunakan metode Pandas python -c "import geopandas"_33 untuk menggabungkan beberapa kerangka data
conda activate python_foundation_19
Buka buku catatan bernama python -c "import geopandas"_34
NumPy (Python Numerik) adalah pustaka Python penting untuk perhitungan ilmiah. Perpustakaan seperti Pandas dan GeoPandas dibangun di atas NumPy
Ini memberikan cara yang cepat dan efisien untuk bekerja dengan Array. Dalam domain analisis data spasial, ini memainkan peran penting dalam bekerja dengan data Raster - seperti citra satelit, foto udara, data elevasi, dll. Karena struktur yang mendasari data raster adalah larik 2D untuk setiap pita - mempelajari NumPy sangat penting dalam memproses data raster menggunakan Python
Dengan konvensi, conda install --channel conda-forge geopandas -y_73 umumnya diimpor sebagai python -c "import geopandas"36
Array
Objek array di NumPy disebut python -c "import geopandas"37. Ini menyediakan banyak fungsi pendukung yang membuat bekerja dengan array menjadi cepat dan mudah. Array mungkin tampak seperti Daftar Python, tetapi python -c "import geopandas"37 hingga 50x lebih cepat dalam operasi matematika. Anda dapat membuat larik menggunakan metode ________16______39. Seperti yang Anda lihat, objek yang dihasilkan bertipe python -c "import geopandas"40
conda activate python_foundation_20
Array dapat memiliki dimensi apapun. Kita dapat membuat array 2D seperti di bawah ini. python -c "import geopandas"_37 objek memiliki properti python -c "import geopandas"42 yang menyimpan jumlah dimensi array. Anda juga dapat memeriksa ukuran array menggunakan properti ________16______43
conda activate python_foundation_21
Anda dapat mengakses elemen array seperti daftar Python menggunakan python -c "import geopandas"44 notasi
Operasi Larik
Operasi matematika pada array numpy mudah dan cepat. NumPy sebanyak mungkin fungsi bawaan untuk operasi umum
Anda juga dapat menggunakan operasi fungsi pada array
conda activate python_foundation_22
Jika objeknya adalah objek numpy, Anda juga bisa menggunakan operator Python
Anda juga dapat menggabungkan objek array dan skalar. Operasi skalar diterapkan ke setiap item dalam larik
conda activate python_foundation_23
Konsep penting dalam NumPy adalah Array Axes. Mirip dengan perpustakaan conda install --channel conda-forge geopandas -y75, Dalam larik 2D, Sumbu 0 adalah arah baris dan Sumbu 1 adalah arah kolom. Diagram di bawah menunjukkan arah
Mari kita lihat bagaimana kita bisa menerapkan fungsi pada sumbu tertentu. Di sini ketika kita menerapkan fungsi python -c "import geopandas"_46 pada sumbu-0 dari array 2D, ini memberi kita array 1D dengan nilai yang dijumlahkan di seluruh baris
conda activate python_foundation_24
Latihan
Jumlahkan array python -c "import geopandas"47 sepanjang Axis-1. Menurut Anda apa hasilnya?
conda activate python_foundation_25
Buka buku catatan bernama python -c "import geopandas"_48
RasterIO adalah perpustakaan modern untuk bekerja dengan data geospasial dalam format grid. Ini unggul dalam menyediakan cara mudah untuk membaca/menulis data raster dan mengakses masing-masing band dan piksel sebagai conda install --channel conda-forge geopandas -y73 array
RasterIO dibangun di atas GDAL (Perpustakaan Abstraksi Data Geospasial) yang populer. GDAL ditulis dalam C++ sehingga API Python yang disediakan oleh GDAL tidak terlalu intuitif untuk pengguna Python. RaserIO bertujuan untuk memudahkan pengguna Python menggunakan pustaka GDAL yang mendasarinya dengan cara yang intuitif
Pada bagian ini, kita akan mengambil 4 ubin SRTM individu di sekitar Mt. wilayah Everest dan menggabungkannya menjadi satu GeoTiff menggunakan RasterIO
conda activate python_foundation_26
Membaca Data Raster
RasterIO dapat membaca format raster apa pun yang didukung oleh pustaka GDAL. Kita dapat memanggil metode conda install --channel conda-forge geopandas -y_39 dengan jalur file raster. Kumpulan data yang dihasilkan berperilaku sangat mirip dengan objek File Python
conda activate python_foundation_27
Anda dapat memeriksa informasi tentang raster menggunakan atribut python -c "import geopandas"51
Properti penting adalah transformasi dataset. Transformasi berisi resolusi piksel dari kumpulan data dan koordinat baris dan kolom di sudut kiri atas kumpulan data
conda activate python_foundation_28
Untuk membaca nilai piksel, kita perlu memanggil metode python -c "import geopandas"52 dengan mengirimkannya nomor indeks pita. Mengikuti konvensi GDAL, band diindeks dari 1. Karena dataset kami hanya berisi 1-band, kami dapat membacanya sebagai berikut
conda activate python_foundation_29
Terakhir, ketika kita selesai dengan dataset, kita harus menutupnya. It is especially important when writing a dataset
Merging Datasets
Let’s see how we can read the 4 individual tiles and mosaic them together. RasterIO provides multiple sub-modules for various raster operations. We can use the python -c "import geopandas"53 module to carry out this operation
We first find all the individual files in the directory using the python -c "import geopandas"32 function
conda activate python_foundation30
The rasterio. merge module has a python -c "import geopandas"55 method that takes a list of datasets and returns the merged dataset. So we create an empty list, open each of the files and append it to the list
conda activate python_foundation31
We can pass on the list of tile dataset to the merge method, which will return us the merged data and a new transform which contains the updated extent of the merged raster
conda activate python_foundation32
We save the data and the transform to separate variables
conda activate python_foundation33
Verify that the resulting array shape the sum of individual rasters
Writing Raster Data
Similar to regular Python files, to create a new file, we can open the output file in the write mode. RasterIO provides a python -c "import geopandas"56 method that we can use to write individual bands
conda activate python_foundation34
We need to specify many metadata parameters to initialize the output dataset. Some of these parameter values can be directly copied from the input files, such as python -c "import geopandas"13, python -c "import geopandas"58, python -c "import geopandas"59 etc. , while others can be obtained from the merged dataset, such as python -c "import geopandas"60 and python -c "import geopandas"61
Remember to call the conda install --channel conda-forge geopandas -y44 method which will finalize the file and write the data to disk
conda activate python_foundation35
Latihan
The merged array represents elevation values. The extent of the tiles cover Mt. Everest. Read the resulting raster and find the maximum elevation value contained in it
conda activate python_foundation36
So far we have used Jupyter Notebooks to write and execute Python code. A notebook is a great choice to interactively explore, visualize and document workflows. But they are not suited for writing scripts for automation. If you have tasks that are long running or want to execute certain tasks on a schedule, you have to write scripts in a standalone python -c "import geopandas"63 file and run it from a Terminal or Console
Get a Text Editor
Any kind of software development requires a good text editor. If you already have a favorite text editor or an IDE (Integrated Development Environment), you may use it for this course. Otherwise, each platform offers a wide variety of free or paid options for text editors. Choose the one that fits your needs
Below are my recommendations editors that are simple to use for beginners
- Windows. Notepad++ is a good free editor for windows. Download and install the Notepad++ editor. Tip. Before writing Python code in Notepad+++, make sure to go to Settings → Preferences → Tab Settings and enable python -c "import geopandas"64. Python is very sensitive about whitespace and this setting will ensure tabs and spaces are treated properly
- Mac. TextMate is an open-source editor for Mac that is currently available for free
Writing a Script
Copy the following code and paste it in your text editor. Browse to the data package directory and save the file as python -c "import geopandas"65. Make sure that there is no python -c "import geopandas"66 extension at the end
conda activate python_foundation37
Executing a Script
Windows
Open Command Prompt/Terminal
Navigate to the directory containing the script using the conda activate python_foundation62 command
- Run the script using the conda activate python_foundation54 command. The script will run and print the distance
Mac and Linux
- Switch to the correct conda environment
- Navigate to the directory containing the script using the conda activate python_foundation62 command
- Run the script using the conda activate python_foundation54 command. The script will run and print the distance
conda activate python_foundation39If you have multiple python installations on your system, you will have to pick the right Python binary. If the command fails, try python -c "import geopandas"71 instead of just conda activate python_foundation54 in the command below. The script will run and print the distance
To achieve mastery in programming, you need to practice writing code and solve many diverse type of problems. I strongly recommend picking up a project and implementing it in Python to improve your skills. You can also take other courses to learn aspects of Python and spatial data processing
Lakukan Proyek
I have some recommendation for projects that are a good fit for beginners, but are still challenging to help you become proficient. You can try to work on as many of the following problems as you like