Pemantauan lingkungan, tatanén, tata kota, manajemén bencana, sareng studi perubahan iklim sadayana ngagaduhan kauntungan tina analisa citra satelit.
Urang tiasa nampi wawasan anu penting ngeunaan karakteristik, parobahan, sareng dinamika planét urang ku cara ngamangpaatkeun jumlah data anu ageung anu dirékam ku satelit panjaga Bumi.
Python, basa program anu serbaguna sareng kuat, nawiskeun ékosistem perpustakaan anu beunghar sareng alat pikeun ngolah citra satelit anu gancang sareng efektif.
Pamakéan analisis citra satelit muka dunya kamungkinan. Éta ngamungkinkeun urang pikeun nimba inpormasi mangpaat tina poto satelit, sapertos kategorisasi tutupan lahan, évaluasi kaséhatan vegetasi, nyukcruk ékspansi kota, sareng pemetaan garis pantai.
Urang tiasa sacara gampil ngolah, ningalikeun, sareng nganalisis gambar satelit ku cara ngamangpaatkeun versatilitas sareng modul Python sapertos rasterio, numpy, sareng matplotlib.
Salah sahiji kauntungan utama ngagunakeun Python pikeun analisa citra satelit nyaéta rentang lega modul ngolah data geospasial.
Rasterio, contona, gaduh antarmuka anu saderhana pikeun maca sareng ngarobih inpormasi raster, janten cocog pikeun damel sareng file citra satelit.
Modul numpy nyadiakeun operasi Asép Sunandar Sunarya canggih pikeun ngalakukeun itungan gancang sarta statistik dina data gambar. Matplotlib ogé ngamungkinkeun urang pikeun ngahasilkeun visual anu relevan pikeun ngabantosan interpretasi sareng komunikasi hasil analitik.
Dina bagian handap, urang bakal nempo conto sabenerna sarta snippét kode pikeun mintonkeun kumaha Python bisa dipaké pikeun nganalisis poto satelit.
Urang bakal ngabahas kumaha cara muka poto satelit, visualisasi data pencitraan, ékstrak metadata, ngitung statistik pita, sareng ngajalankeun analisa khusus sapertos Normalized Difference Vegetation Index (NDVI).
Conto ieu bakal ngabantosan anjeun ngamimitian dina topik anu pikaresepeun ngeunaan analisa gambar satelit sareng Python.
Mimiti, urang kedah ngimpor sababaraha perpustakaan pikeun ngabantosan tugas urang.
import rasterio
import matplotlib.pyplot as plt
import numpy as np
1. Visualizing jeung Muka Gambar Satelit
Urang bakal perpustakaan Rasterio dina bagian ieu pikeun ngakses gambar satelit disadiakeun ku satellite_image_path.
File gambar dibuka ngagunakeun métode rasterio.open (), sarta objék hasilna, satellite_image, ngagambarkeun gambar dibuka.
Pikeun tugas ieu, Kuring geus dipaké gambar tina link ieu: HTTPS://unsplash.com/photos/JiuVoQd-ZLk tur disimpen dina komputer kuring salaku "satellite.jpg".
# Open the satellite image using rasterio
satellite_image_path = 'satellite.jpg'
satellite_image = rasterio.open(satellite_image_path)
Sanggeus muka gambar, urang baca eta salaku Asép Sunandar Sunarya ngagunakeun satellite_image obyék urang baca () fungsi. Nilai piksel pikeun tiap pita gambar satelit disimpen dina susunan gambar.
# Read the image as an array
image_array = satellite_image.read()
Pikeun visually evaluate gambar satelit, kami nganggo alat matplotlib.pyplot pikeun ngahasilkeun inohong 10 × 10 inci.
Asép Sunandar Sunarya gambar ditémbongkeun ngagunakeun métode imshow (). Transpose (1, 2, 0) operasi dipaké pikeun nyusun ulang diménsi Asép Sunandar Sunarya gambar pikeun nyocogkeun urutan diantisipasi ku imshow ().
Tungtungna, sumbu ('off') nyumputkeun labél sumbu, masihan dina tempoan jelas tina gambar satelit.
# Visualize the image
plt.figure(figsize=(10, 10))
plt.imshow(image_array.transpose(1, 2, 0))
plt.axis('off')
plt.show()
2. Ékstraksi Metadata
Kami nimba inpormasi metadata penting ngeunaan gambar satelit saatos muka sareng ningalikeunana. Inpormasi ieu ngabantosan urang ngartos kualitas gambar sareng nawiskeun kontéks pikeun panalungtikan ka hareup.
image_width = satellite_image.width
image_height = satellite_image.height
image_crs = satellite_image.crs
image_count = satellite_image.count
print("Image Width:", image_width)
print("Image Height:", image_height)
print("Coordinate Reference System:", image_crs)
print("Number of Bands:", image_count)
Ngagunakeun lebar jeung jangkungna atribut obyék satellite_image, urang nimba lebar jeung jangkungna gambar. Harta crs dipaké pikeun meunangkeun sistem rujukan koordinat gambar (CRS).
CRS masihan inpormasi ngeunaan sistem rujukan spasial gambar, ngamungkinkeun urang pikeun cocog koordinat gambar ka tempat-tempat nyata.
Tungtungna, kami nganggo atribut count tina obyék satellite_image pikeun ngitung jumlah pita dina gambar. Data ieu kritis pikeun analisis engké sabab ngamungkinkeun urang pikeun ménta nilai piksel pikeun tiap band dina Asép Sunandar Sunarya gambar.
3. Band Statistik Itungan
Urang ngitung statistik pikeun tiap band dina Asép Sunandar Sunarya gambar di bagian ieu. A loop iterates sakuliah unggal band, sarta numpy perpustakaan urang min, max, mean, sarta fungsi std dipaké pikeun ngitung statistik ieu.
Daptar kamus nyimpen statistik pikeun tiap band.
band_stats = []
for band in range(image_count):
band_data = image_array[band]
band_min = np.min(band_data)
band_max = np.max(band_data)
band_mean = np.mean(band_data)
band_std = np.std(band_data)
band_stats.append({'Band': band+1, 'Min': band_min, 'Max': band_max, 'Mean': band_mean, 'Std': band_std})
print("Band Statistics:")
for stats in band_stats:
print(stats)
Siklus loop dina unggal pita, kalayan pita variabel ngagambarkeun indéks pita. Ngagunakeun image_array[band], urang nimba nilai piksel tina Asép Sunandar Sunarya gambar pikeun tiap band.
Lajeng, pikeun pita ayeuna, fungsi np.min (), np.max (), np.mean (), sarta np.std () dipaké pikeun nangtukeun minimum, maksimum, mean, jeung simpangan baku tina piksel. nilai-nilai.
Data anu diitung pikeun tiap pita disimpen dina kamus nganggo konci sapertos 'Band,' 'Min,' 'Max,' 'Mean,' sareng 'Std. Unggal kamus napel kana daptar statistik band. Tungtungna, data unggal band urang dicitak kana konsol nu.
4. NDVI (Bédaan Normal Indéks Vegetasi) Itungan
NDVI mangrupikeun ukuran populér pikeun ngukur kaséhatan pepelakan. Dina bagian ieu, urang pariksa ningali lamun gambar ngawengku sahanteuna opat pita, nu diperlukeun pikeun ngitung NDVI.
red_band = None
nir_band = None
if image_count >= 4:
red_band = image_array[2] # assuming red band is at index 2
nir_band = image_array[3] # assuming near-infrared band is at index 3
if red_band is not None and nir_band is not None:
ndvi = (nir_band - red_band) / (nir_band + red_band)
# Visualize the NDVI
plt.figure(figsize=(10, 10))
plt.imshow(ndvi, cmap='RdYlGn')
plt.colorbar(label='NDVI')
plt.title('Normalized Difference Vegetation Index (NDVI)')
plt.axis('off')
plt.show()
else:
print("Error: The satellite image does not have the required bands for NDVI calculation.")
Pikeun ngamimitian, urang nyetél variabel red_band sareng nir_band ka Euweuh. Variabel image_count ieu lajeng dipaké pikeun nangtukeun lamun gambar ngandung sahanteuna opat pita.
Lamun kitu, urang infer pita beureum mangrupa indéks 2 sarta deukeut-infra red (NIR) band indéks 3. Band cocog ti Asép Sunandar Sunarya gambar ditugaskeun kana variabel red_band na nir_band.
Upami pita beureum sareng pita NIR tiasa diaksés, NDVI diitung nganggo rumus (NIR - Beureum) / (NIR + Beureum). Angka NDVI anu hasilna nunjukkeun indéks vegetasi pikeun tiap piksel dina gambar.
Urang lajeng ningali NDVI ku nyieun hiji inohong anyar jeung mintonkeun Asép Sunandar Sunarya NDVI maké imshow (). Metodeu colorbar () nambihan colorbar kana plot, méré nilai NDVI rujukan visual.
Pikeun museurkeun sagemblengna kana tampilan NDVI, urang ogé nangtukeun caption pikeun plot jeung cabut labél sumbu jeung sumbu ('off'). Tungtungna, plot ditémbongkeun kalawan plt.show ().
Pesen kasalahan ditulis ka konsol lamun gambar lacks pita requisite pikeun ngitung NDVI (ie, kirang ti opat pita).
5. Bawa Gambar Satelit ka Tutup
Hadé pisan mun éta ngagunakeun nutup () fungsi pikeun nutup file gambar satelit sanggeus ngalakonan analisis jeung nempoan. Ieu ngabebaskeun sumber daya sistem anu aya hubunganana sareng file gambar.
satellite_image.close()
Ieu solusi kuring:
Éta pisan!
Catetan final
Peran Python dina ngabantosan ulikan set data masif ieu janten langkung penting nalika kasadiaan sareng resolusi gambar satelit ningkat.
Kamampuhan ngagunakeun Python pikeun ngaksés, ngolah, nganalisis, sareng nunjukkeun gambar satelit nawiskeun jalan pikeun aplikasi kreatif sareng wawasan anu tiasa nyababkeun parobihan anu hadé sareng pangaweruh anu langkung ageung ngeunaan dunya urang.
Émut pikeun ngajalajah seueur pilihan sumber, tutorial, sareng perpustakaan anu sayogi pikeun ningkatkeun pangaweruh sareng kamampuan anjeun nalika anjeun neraskeun petualangan anjeun dina analisa citra satelit nganggo Python.
Terus kabetot, ngajalajah, sareng nganggo kamampuan Python pikeun mendakan misteri anu dikubur dina gambar satelit.
Leave a Reply