Abojuto ayika, iṣẹ-ogbin, eto ilu, iṣakoso ajalu, ati awọn ẹkọ iyipada oju-ọjọ ti ni gbogbo anfani lati inu itupalẹ aworan satẹlaiti.
A le gba awọn oye to ṣe pataki si awọn abuda, awọn iyipada, ati awọn iṣesi aye wa nipa lilo iye nla ti data ti o gbasilẹ nipasẹ awọn satẹlaiti ti n wo Aye.
Python, ede siseto to wapọ ati ti o lagbara, nfunni ni ilolupo ilolupo ti awọn ile-ikawe ati awọn irinṣẹ fun ṣiṣe aworan satẹlaiti iyara ati imunadoko.
Awọn lilo ti itupalẹ satẹlaiti aworan ṣi soke a aye ti o ṣeeṣe. O jẹ ki a yọ alaye ti o wulo jade lati awọn fọto satẹlaiti, gẹgẹbi isọri ideri ilẹ, igbelewọn ilera eweko, ipasẹ imugboroja ilu, ati aworan agbaye.
A le ni irọrun ṣe ilana, ṣafihan, ati itupalẹ awọn aworan satẹlaiti nipa lilo ilopọ Python ati awọn modulu bii rasterio, numpy, ati matplotlib.
Ọkan ninu awọn anfani akọkọ ti lilo Python fun itupalẹ aworan satẹlaiti jẹ ibiti o gbooro ti awọn modulu sisẹ data geospatial.
Rastero, fun apẹẹrẹ, ni wiwo ti o rọrun fun kika ati iyipada alaye raster, ṣiṣe pe o dara fun ṣiṣẹ pẹlu awọn faili aworan satẹlaiti.
Module numpy n pese awọn iṣẹ isọpọ ti fafa fun ṣiṣe awọn iṣiro iyara ati awọn iṣiro lori data aworan. Matplotlib tun jẹ ki a ṣe awọn iwoye ti o yẹ lati ṣe iranlọwọ ninu itumọ ati ibaraẹnisọrọ ti awọn esi atupale.
Ni awọn apakan atẹle, a yoo wo awọn apẹẹrẹ gangan ati awọn snippets koodu lati ṣafihan bii Python ṣe le lo lati ṣe itupalẹ awọn fọto satẹlaiti.
A yoo lọ lori bi a ṣe le ṣii awọn fọto satẹlaiti, wo data aworan, jade metadata, ṣe iṣiro awọn iṣiro ẹgbẹ, ati ṣiṣe itupalẹ ni pato bii Atọka Iyatọ Ewebe Deede (NDVI).
Awọn apẹẹrẹ wọnyi yoo ṣe iranlọwọ fun ọ lati bẹrẹ ni koko-ọrọ iyanilẹnu ti itupalẹ awọn aworan satẹlaiti pẹlu Python.
Ni akọkọ, a nilo lati gbe awọn ile-ikawe kan wọle lati ṣe iranlọwọ fun wa pẹlu iṣẹ wa.
import rasterio
import matplotlib.pyplot as plt
import numpy as np
1. Wiwo ati Ṣii Aworan Satẹlaiti naa
A yoo ile-ikawe Rasteri ni apakan yii lati wọle si aworan satẹlaiti ti a pese nipasẹ satẹlaiti_image_path.
Faili aworan ti wa ni ṣiṣi nipa lilo ọna rasterio.open(), ati abajade ohun, satẹlaiti_image, duro fun aworan ṣiṣi.
Fun iṣẹ-ṣiṣe yii, Mo ti lo aworan lati ọna asopọ yii: https://unsplash.com/photos/JiuVoQd-ZLk ati pe o fipamọ sori kọnputa mi bi “satellite.jpg”.
# Open the satellite image using rasterio
satellite_image_path = 'satellite.jpg'
satellite_image = rasterio.open(satellite_image_path)
Lẹhin ṣiṣi aworan naa, a ka bi apẹrẹ nipa lilo iṣẹ kika () ohun satẹlaiti_image. Awọn iye piksẹli fun ẹgbẹ kọọkan ti awọn aworan satẹlaiti ti wa ni ipamọ ni titobi aworan.
# Read the image as an array
image_array = satellite_image.read()
Lati ṣe ayẹwo oju aworan satẹlaiti, a lo matplotlib.pyplot ọpa lati ṣe ina nọmba 10 × 10-inch.
Aworan aworan ti han nipa lilo ọna imshow(). Iṣiṣẹ transpose (1, 2, 0) ni a lo lati tunto awọn iwọn titobi aworan lati baamu aṣẹ ti ifojusọna nipasẹ imshow().
Nikẹhin, axis ('pa') tọju awọn aami axis, fifun ni wiwo ti o han gbangba ti aworan satẹlaiti naa.
# Visualize the image
plt.figure(figsize=(10, 10))
plt.imshow(image_array.transpose(1, 2, 0))
plt.axis('off')
plt.show()
2. Metadata isediwon
A jade alaye metadata pataki nipa aworan satẹlaiti lẹhin ṣiṣi ati iṣafihan rẹ. Alaye yii ṣe iranlọwọ fun wa ni oye awọn agbara aworan ati pe o funni ni aaye fun iwadii ọjọ iwaju.
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)
Lilo iwọn ati awọn abuda giga ti ohun satẹlaiti_image, a yọkuro iwọn ati giga aworan naa. Ohun-ini crs ni a lo lati gba eto itọkasi ipoidojuko aworan naa (CRS).
CRS n funni ni alaye lori eto itọkasi aaye ti aworan, n gba wa laaye lati baramu awọn ipoidojuko aworan si awọn aaye gidi-aye.
Nikẹhin, a lo ẹda kika ti ohun satẹlaiti_image lati ṣe iṣiro nọmba awọn ẹgbẹ ninu aworan naa. Data yii ṣe pataki fun itupalẹ nigbamii nitori pe o gba wa laaye lati gba awọn iye piksẹli fun ẹgbẹ kọọkan ninu titobi aworan.
3. Band Statistics Iṣiro
A ṣe iṣiro awọn iṣiro fun ẹgbẹ kọọkan ninu titobi aworan ni apakan yii. Loop kan n sọ kaakiri ẹgbẹ kọọkan, ati pe min, max, mean, ati awọn iṣẹ std ile-ikawe numpy ni a lo lati ṣe iṣiro awọn iṣiro wọnyi.
Atokọ awọn iwe-itumọ tọju awọn iṣiro fun ẹgbẹ kọọkan.
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)
Awọn iyipo lupu kọja ẹgbẹ kọọkan, pẹlu ẹgbẹ oniyipada ti o nsoju atọka ẹgbẹ. Lilo image_array[band], a yọkuro awọn iye piksẹli lati inu titobi aworan fun ẹgbẹ kọọkan.
Lẹhinna, fun ẹgbẹ lọwọlọwọ, np.min (), np.max (), np.mean (), ati awọn iṣẹ np.std () ni a lo lati pinnu o kere julọ, o pọju, tumọ, ati iyapa boṣewa ti ẹbun naa. awọn iye.
Awọn data iṣiro fun ẹgbẹ kọọkan ti wa ni fipamọ ni iwe-itumọ pẹlu awọn bọtini bii 'Band,' 'Min,' 'Max,' 'Itumosi,' ati 'Std. Iwe-itumọ kọọkan ni a fikun si atokọ ti awọn iṣiro ẹgbẹ. Nikẹhin, data ẹgbẹ kọọkan ti wa ni titẹ si console.
4. NDVI (Normalized Iyato Eweko Atọka) Iṣiro
NDVI jẹ iwọn olokiki fun wiwọn ilera awọn irugbin. Ni apakan yii, a ṣayẹwo lati rii boya aworan naa pẹlu o kere ju awọn ẹgbẹ mẹrin, eyiti o nilo fun iṣiro 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.")
Lati bẹrẹ, a ṣeto red_band ati nir_band oniyipada si Kò. Ayipada image_count lẹhinna ni a lo lati pinnu boya aworan naa ni o kere ju awọn ẹgbẹ mẹrin.
Ti o ba jẹ bẹ, a ṣe akiyesi ẹgbẹ pupa jẹ atọka 2 ati ẹgbẹ infurarẹẹdi ti o sunmọ (NIR) jẹ atọka 3. Awọn ẹgbẹ ti o baamu lati inu aworan aworan ni a yàn si awọn oniyipada red_band ati nir_band.
Ti awọn ẹgbẹ pupa ati awọn ẹgbẹ NIR mejeeji wa, NDVI jẹ iṣiro nipa lilo agbekalẹ (NIR – Red) / (NIR + Red). Awọn nọmba NDVI ti abajade tọkasi atọka eweko fun ẹbun kọọkan ninu aworan naa.
Lẹhinna a rii NDVI nipa ṣiṣẹda eeya tuntun kan ati iṣafihan eto NDVI nipa lilo imshow (). Ọna awọ () ṣe afikun awọ-awọ kan si idite, fifun awọn iye NDVI ni itọkasi wiwo.
Lati dojukọ igbọkanle lori ifihan NDVI, a tun sọ akọle kan pato fun idite naa ati yọ awọn aami axis kuro pẹlu axis ('pa'). Níkẹyìn, awọn Idite han pẹlu plt.show ().
Ifiranṣẹ aṣiṣe ti kọ si console ti aworan naa ko ba ni awọn ẹgbẹ ti o nilo fun iṣiro NDVI (ie, kere ju awọn ẹgbẹ mẹrin lọ).
5. Kiko Satellite Aworan si a Close
O jẹ iṣe ti o dara julọ lati lo iṣẹ isunmọ () lati pa faili aworan satẹlaiti naa lẹhin ṣiṣe itupalẹ ati wiwo. Eyi ṣe ominira eyikeyi awọn orisun eto ti o sopọ mọ faili aworan naa.
satellite_image.close()
Eyi ni ojutu mi:
O n niyen!
Awọn akọsilẹ ipari
Ipa Python ni iranlọwọ iwadi ti awọn iwe data nla wọnyi ti n di pataki pupọ si bi wiwa ati ipinnu ti awọn aworan satẹlaiti n pọ si.
Agbara lati lo Python lati wọle si, ilana, itupalẹ, ati ṣafihan awọn aworan satẹlaiti nfunni ni ọna fun awọn ohun elo ti o ṣẹda ati awọn oye ti o le ṣe iyipada ti o dara ati imọ nla ti agbaye wa.
Ranti lati ṣawari yiyan nla ti awọn orisun, awọn ikẹkọ, ati awọn ile-ikawe ti o wa lati mu imọ ati awọn agbara rẹ pọ si bi o ṣe tẹsiwaju lori ìrìn rẹ ni itupalẹ aworan satẹlaiti nipa lilo Python.
Tẹsiwaju lati nifẹ, ṣawari, ati lo awọn agbara Python lati ṣawari awọn ohun ijinlẹ ti a sin sinu awọn aworan satẹlaiti.
Fi a Reply