Analisis data geospasial menggunakan python

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_foundation
43. Buka zip file ini ke direktori - sebaiknya ke folder
conda activate python_foundation
44

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

  1. 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_foundation
46

Analisis data geospasial menggunakan python

  1. (Pengguna Windows) Setelah diinstal, cari Anaconda Prompt, luncurkan. (pengguna Mac/Linux). Luncurkan jendela Terminal

Analisis data geospasial menggunakan python

  1. 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
conda create --name python_foundation
_

Analisis data geospasial menggunakan python

  1. Sekarang Anda akan dimintai konfirmasi;

Analisis data geospasial menggunakan python

  1. 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_foundation
    48
conda activate python_foundation

Analisis data geospasial menggunakan python

  1. Sekarang kami siap untuk menginstal paket yang diperlukan menggunakan perintah ________0______49. Pertama kita akan menginstal
    conda activate python_foundation
    50. 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_foundation
    52 akan melewati dialog konfirmasi. Masukkan perintah di bawah ini dan tekan Enter
conda install --channel conda-forge geopandas -y

Pelajari lebih lanjut tentang conda-forge

Analisis data geospasial menggunakan python

  1. Jika instalasi berhasil, Anda akan melihat pesan seperti yang ditunjukkan di sini

Analisis data geospasial menggunakan python

  1. conda activate python_foundation
    50 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_foundation
    55 yang akan menjalankan pernyataan python. Masukkan perintah di bawah ini dan tekan Enter
python -c "import geopandas"

Analisis data geospasial menggunakan python

  1. 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

Analisis data geospasial menggunakan python

  1. 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_foundation
    57,
    conda activate python_foundation
    58 dan
    conda activate python_foundation
    59
conda install --channel conda-forge geopy rasterio matplotlib jupyterlab -y

Analisis data geospasial menggunakan python

  1. Setelah perintah selesai, Anda akan melihat layar seperti di bawah ini

Analisis data geospasial menggunakan python

  1. 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

Catatan. Jangan tutup permintaan anaconda Anda setelah JupyterLab terbuka. Anda harus tetap menjalankannya selama Anda ingin menggunakan JupyterLab

jupyter-lab

Analisis data geospasial menggunakan python

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_foundation
60 dan tekan Enter untuk beralih ke drive

________24___22_______

Analisis data geospasial menggunakan python

Mac/Linux

Periksa drive yang dipasang di sistem Anda dengan memasukkan

conda activate python_foundation
61. Setelah itu gunakan perintah
conda activate python_foundation
_62 untuk beralih ke drive

cd /Volumes/
jupyter-lab
  1. Tab browser baru akan terbuka dengan instance JupyterLab. Klik tombol Python 3 di bawah Notebook

Analisis data geospasial menggunakan python

  1. 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
conda activate python_foundation
0

Analisis data geospasial menggunakan python

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
_1

Ikuti langkah-langkah instalasi dan instal ulang geopanda

Paket data kelas Anda berisi beberapa notebook Jupyter yang berisi kode dan latihan untuk kelas ini

  1. 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

Analisis data geospasial menggunakan python

  1. 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

Analisis data geospasial menggunakan python

  1. 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

Analisis data geospasial menggunakan python


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_foundation
66


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_foundation
5

Latihan

Kami memiliki variabel bernama

conda activate python_foundation
68 di bawah ini dengan nilai
conda activate python_foundation
69 - menunjukkan jarak garis lurus antara San Francisco dan New York dalam Kilometer. Buat variabel lain bernama
conda activate python_foundation
70 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 -y
0

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 -y
1

Penyortiran default dalam urutan menaik. Jika kami ingin mengurutkan daftar dalam urutan menurun, kami dapat memanggil fungsi dengan

conda activate python_foundation
75

conda install --channel conda-forge geopandas -y
2

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 -y
3

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 -y
4

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 -y
5

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 -y
6

conda install --channel conda-forge geopandas -y
7


Buka buku catatan bernama

conda activate python_foundation
_77


conda install --channel conda-forge geopandas -y
8

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_foundation
78

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"
_7

python -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_foundation
80 di atasnya yang mengembalikan Tuple kunci dan nilai untuk setiap item

conda install --channel conda-forge geopy rasterio matplotlib jupyterlab -y
0

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 -y
1

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 -y
2

Anda dapat menggunakan

conda activate python_foundation
83 kata kunci bersama dengan
conda activate python_foundation
82 untuk mencocokkan elemen yang tidak memenuhi ketentuan

conda install --channel conda-forge geopy rasterio matplotlib jupyterlab -y
3

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_foundation
87

conda install --channel conda-forge geopy rasterio matplotlib jupyterlab -y
4

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_foundation
88,
conda activate python_foundation
89 dan
conda activate python_foundation
90

Pernyataan

conda activate python_foundation
_88 akan menghentikan loop dan keluar darinya

conda install --channel conda-forge geopy rasterio matplotlib jupyterlab -y
5

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 -y
6

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 -y
7

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 -y
8


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
_9

Fungsi 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 -y
00

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 -y
02. 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 -y
04. 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 -y
07 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 -y
09. 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 -y
10

Untuk kursus ini, kami menggunakan platform Anancoda - yang hadir dengan pengelola paketnya sendiri bernama

conda activate python_foundation
45. 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_foundation
56 di lingkungan kami.
conda activate python_foundation
56 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 -y
20

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

Analisis data geospasial menggunakan python

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 -y
23 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 -y
25 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 -y
29 loop untuk mengulangi
conda install --channel conda-forge geopandas -y
30 kamus dan panggil fungsi
conda install --channel conda-forge geopandas -y
31 untuk mencetak jarak mengemudi nyata antara San Fransico dan setiap kota. Beri nilai batasi kueri Anda dengan menambahkan
conda install --channel conda-forge geopandas -y
32 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 -y
34 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 -y
36 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 -y
38

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 -y
41

File input kami juga berisi karakter Unicode, jadi kami menetapkan

conda install --channel conda-forge geopandas -y
42 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 -y
44 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 -y
46 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 -y
48 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 -y
50

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 -y
46 dan meningkatkannya dengan setiap iterasi. Ada cara mudah untuk melakukannya menggunakan fungsi
conda install --channel conda-forge geopandas -y
51 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 -y
44 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 -y
54. 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 -y
57 dalam pernyataan
conda install --channel conda-forge geopandas -y
54. 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 -y
60, 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 -y
61 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 -y
61 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 -y
65 untuk menghitung jarak. Pada kode di bawah ini, kami hanya menghitung 5 kecocokan pertama

cd /Volumes/
3

Daripada mencetak hasilnya, mari tulis hasilnya ke file baru. Mirip dengan csv. DictReader(), ada pendamping

conda install --channel conda-forge geopandas -y
66 metode untuk menulis file. We create a
conda install --channel conda-forge geopandas -y
67 object and then write rows to it using the
conda install --channel conda-forge geopandas -y
68 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 -y
59 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


Analisis data geospasial menggunakan python

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 -y
73 - 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 -y
75 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 -y
75 is commonly imported as
conda install --channel conda-forge geopandas -y
77

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 -y
78,
conda install --channel conda-forge geopandas -y
79,
conda install --channel conda-forge geopandas -y
80 and so forth to read a variety of formats. Here we will read the
conda install --channel conda-forge geopandas -y
36 file using
conda install --channel conda-forge geopandas -y
78 method

Once the file is read and a DataFrame object is created, we can inspect it using the

conda install --channel conda-forge geopandas -y
83 method

There is also a

conda install --channel conda-forge geopandas -y
84 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 -y
85 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 -y
86 and
conda install --channel conda-forge geopandas -y
87 methods - that allows you to locate particular slices of data. Learn about in Pandas. Here we can use
conda install --channel conda-forge geopandas -y
87 to find the row matching the
conda install --channel conda-forge geopandas -y
61 name. Since
conda install --channel conda-forge geopandas -y
87 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 -y
91 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 -y
91 function takes 2 arguments. A function to apply, and the axis along which to apply it.
conda install --channel conda-forge geopandas -y
93 means it will be applied to columns and
conda install --channel conda-forge geopandas -y
94 means it will apply to rows

Analisis data geospasial menggunakan python

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 -y
63 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 -y
96,
conda install --channel conda-forge geopandas -y
97 etc

Here we will use the

conda install --channel conda-forge geopandas -y
96 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 -y
99 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 -y
61 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 -y
61

conda activate python_foundation
_00


Analisis data geospasial menggunakan python

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

Analisis data geospasial menggunakan 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 -y
96

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

Analisis data geospasial menggunakan python

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 -y
78. 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

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


Analisis data geospasial menggunakan python

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 -y
75, Dalam larik 2D, Sumbu 0 adalah arah baris dan Sumbu 1 adalah arah kolom. Diagram di bawah menunjukkan arah

Analisis data geospasial menggunakan python

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 -y
73 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

Analisis data geospasial menggunakan python

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_foundation
30

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_foundation
31

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_foundation
32

We save the data and the transform to separate variables

conda activate python_foundation
33

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_foundation
34

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 -y
44 method which will finalize the file and write the data to disk

conda activate python_foundation
35

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_foundation
36


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_foundation
37

Executing a Script

Windows

  1. Open Command Prompt/Terminal

  2. Navigate to the directory containing the script using the

    conda activate python_foundation
    62 command

conda activate python_foundation
38

Analisis data geospasial menggunakan python

  1. Run the script using the
    conda activate python_foundation
    54 command. The script will run and print the distance
conda activate python_foundation
39

Analisis data geospasial menggunakan python

Mac and Linux

Analisis data geospasial menggunakan python

  1. Switch to the correct conda environment
conda activate python_foundation

Analisis data geospasial menggunakan python

  1. Navigate to the directory containing the script using the
    conda activate python_foundation
    62 command
conda activate python_foundation
41

Analisis data geospasial menggunakan python

  1. Run the script using the
    conda activate python_foundation
    54 command. The script will run and print the distance

If 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_foundation
54 in the command below. The script will run and print the distance

conda activate python_foundation
39

Analisis data geospasial menggunakan python

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

Is Python or R better for spatial analysis?

Python has unquestionably become the primary computer language used by geospatial analysts and researchers in their work with GIS and spatial analysis in general .

How to use Python in GIS?

Python can be run directly within ArcGIS by clicking on the Python button found on the standard toolbar . By clicking the button, ArcMap's python window opens. Jendela python dapat ditambatkan dengan menyeretnya ke bilah alat atau dapat diapungkan di atas ArcMap.

Mengapa Python berharga untuk analisis GIS?

Mungkin bagi pengguna alasan utama adopsi Python adalah karena fakta bahwa Python mudah dipelajari, bagus dalam manipulasi data, dan memiliki banyak library berguna yang . Graser menyoroti Pandas dan karyanya sendiri dengan GeoPandas. . Graser highlighted Pandas and her own work with GeoPandas.

Sebutkan 3 jenis data geospasial?

Vektor dan atribut . Informasi deskriptif tentang lokasi seperti titik, garis, dan poligon. Titik awan. Kumpulan titik-titik yang dipetakan bersama yang dapat dikontekstur ulang sebagai model 3D. Citra raster dan satelit. Gambar dunia kita beresolusi tinggi, diambil dari atas.