Kuyang'anira chilengedwe, ulimi, kukonza mizinda, kayendetsedwe ka masoka, ndi maphunziro a kusintha kwa nyengo zonse zapindula ndi kusanthula kwazithunzi za satellite.
Titha kudziwa zambiri za momwe dziko lathu lilili, kusintha kwake, komanso mphamvu zake potengera kuchuluka kwa data yolembedwa ndi ma satellite owonera Earth.
Python, chilankhulo chosinthika komanso champhamvu chokonzekera, chimapereka malo osungiramo mabuku ndi zida zosinthira mwachangu komanso mogwira mtima zithunzi za satellite.
The ntchito kusanthula kwazithunzi za satelayiti amatsegula dziko la zotheka. Zimatithandiza kupeza mfundo zothandiza pazithunzi za satellite, monga kugawa malo, kuwunika thanzi la zomera, kufufuza kukula kwa mizinda, ndi mapu a m'mphepete mwa nyanja.
Titha kukonza, kuwonetsa, ndi kusanthula zithunzi za satellite mosavuta pogwiritsa ntchito kusinthasintha kwa Python ndi ma modules monga rasterio, numpy, ndi matplotlib.
Chimodzi mwazabwino zogwiritsira ntchito Python pakusanthula zithunzi za satana ndi mitundu yake yambiri yosinthira data ya geospatial.
Mwachitsanzo, Rasterio ili ndi mawonekedwe osavuta owerengera ndikusintha zambiri za raster, ndikupangitsa kuti ikhale yoyenera kugwira ntchito ndi mafayilo azithunzi za satellite.
Module ya numpy imapereka magwiridwe antchito apamwamba kwambiri powerengera mwachangu komanso ziwerengero pazithunzi zazithunzi. Matplotlib imatithandizanso kupanga zowonera zoyenera kuti tithandizire kutanthauzira ndi kulumikizana kwa zotsatira za analytic.
M'magawo otsatirawa, tiwona zitsanzo zenizeni ndi ma code snippets kuti tiwonetse momwe Python ingagwiritsire ntchito kusanthula zithunzi za satellite.
Tiwona momwe tingatsegulire zithunzi za satellite, kuwona zithunzi zojambulira, kuchotsa metadata, kuwerengera ziwerengero zamagulu, ndikuwunika ngati Normalized Difference Vegetation Index (NDVI).
Zitsanzo izi zikuthandizani kuti muyambe pamutu wochititsa chidwi wa kusanthula zithunzi za satellite ndi Python.
Choyamba, tiyenera kuitanitsa malaibulale ena kuti atithandize pa ntchito yathu.
import rasterio
import matplotlib.pyplot as plt
import numpy as np
1. Kuwona ndi Kutsegula Chithunzi cha Satellite
Tikhala laibulale ya Rasterio mugawoli kuti tipeze chithunzi cha satana choperekedwa ndi satellite_image_path.
Fayilo yachithunzi imatsegulidwa pogwiritsa ntchito njira ya rasterio.open (), ndipo chinthu chotsatira, satellite_image, chikuyimira chithunzi chotsegulidwa.
Pa ntchitoyi, ndagwiritsa ntchito chithunzi kuchokera pa ulalo uwu: https://unsplash.com/photos/JiuVoQd-ZLk ndikusunga pa kompyuta yanga ngati "satellite.jpg".
# Open the satellite image using rasterio
satellite_image_path = 'satellite.jpg'
satellite_image = rasterio.open(satellite_image_path)
Titatsegula chithunzicho, timachiwerenga ngati gulu pogwiritsa ntchito satellite_image object's read() ntchito. Ma pixel a gulu lililonse lazithunzi za satelayiti amasungidwa mumndandanda wazithunzi.
# Read the image as an array
image_array = satellite_image.read()
Kuti tiwone bwinobwino chithunzi cha satana, timagwiritsa ntchito chida cha matplotlib.pyplot kupanga chithunzi cha 10 × 10-inch.
Chithunzichi chikuwonetsedwa pogwiritsa ntchito njira ya imshow (). Opaleshoni ya transpose(1, 2, 0) imagwiritsidwa ntchito kukonzanso miyeso yazithunzi kuti zigwirizane ndi dongosolo lomwe likuyembekezeredwa ndi imshow().
Pomaliza, axis('off') amabisa zilembo za axis, ndikuwonetsetsa bwino chithunzi cha satellite.
# Visualize the image
plt.figure(figsize=(10, 10))
plt.imshow(image_array.transpose(1, 2, 0))
plt.axis('off')
plt.show()
2. Kuchotsa Metadata
Timachotsa zambiri za metadata za chithunzi cha satelayiti tikachitsegula ndi kuchiwonetsa. Chidziwitsochi chimatithandiza kumvetsetsa mawonekedwe a chithunzichi ndikupereka nkhani zokafufuza mtsogolo.
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)
Pogwiritsa ntchito m'lifupi ndi kutalika kwa chinthu cha satellite_image, timachotsa m'lifupi ndi kutalika kwa chithunzi. Katundu wa crs amagwiritsidwa ntchito kubweza chithunzi cha coordinate reference system (CRS).
CRS imapereka chidziwitso pamakina owonetsera malo azithunzi, kutilola kuti tigwirizane ndi makonzedwe azithunzi ndi malo enieni adziko lapansi.
Pomaliza, timagwiritsa ntchito chiwerengero cha satellite_image chinthu kuwerengera kuchuluka kwa magulu omwe ali pachithunzichi. Deta iyi ndiyofunikira kuti tiwunikenso pambuyo pake chifukwa imatilola kupeza milingo ya pixel pagulu lililonse lazithunzi.
3. Mawerengedwe a Band Statistics
Timawerengera ziwerengero za gulu lililonse lomwe lili pachithunzipa. Lupu imamveka pagulu lililonse, ndipo numpy library's min, max, mean, ndi std ntchito zimagwiritsidwa ntchito kuwerengera ziwerengerozi.
Mndandanda wamadikishonale umasunga ziwerengero za gulu lililonse.
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)
Lupu lozungulira gulu lililonse, ndi gulu losinthika lomwe limayimira index ya band. Pogwiritsa ntchito image_array[band], timachotsa ma pixel kuchokera pamndandanda wazithunzi pagulu lililonse.
Kenako, pa bandi yamakono, np.min(), np.max(), np.mean(), ndi np.std() ntchito zimagwiritsidwa ntchito pozindikira kuchepera, kupitilira, kutanthawuza, ndi kupatuka kokhazikika kwa pixel. makhalidwe abwino.
Zowerengera zowerengera za gulu lililonse zimasungidwa mudikishonale yokhala ndi makiyi monga 'Band,' 'Min,' 'Max,' 'Mean,' ndi 'Std. Mtanthauzira mawu uliwonse amawonjezedwa pamndandanda wa ziwerengero zamagulu. Pomaliza, deta ya gulu lililonse imasindikizidwa ku console.
4. NDVI (Normalized Difference Vegetation Index) Kuwerengera
NDVI ndi njira yotchuka yoyezera thanzi lazomera. Mu gawo ili, timayang'ana kuti tiwone ngati chithunzicho chili ndi magulu osachepera anayi, omwe amafunikira kuwerengera kwa 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.")
Kuti tiyambe, timayika zosintha za red_band ndi nir_band kukhala Palibe. Kusintha kwa image_count kumagwiritsidwa ntchito kudziwa ngati chithunzicho chili ndi magulu anayi.
Ngati ndi choncho, timaganiza kuti gulu lofiira ndi index 2 ndipo pafupi-infrared (NIR) bandi ndi index 3. Magulu ofananira kuchokera pazithunzi amaperekedwa kumitundu red_band ndi nir_band.
Ngati magulu onse ofiira ndi a NIR akupezeka, NDVI imawerengedwa pogwiritsa ntchito fomula (NIR - Red) / (NIR + Red). Manambala a NDVI omwe amatsatira amawonetsa zolozera zamasamba pa pixel iliyonse pachithunzichi.
Kenako timawona NDVI popanga chithunzi chatsopano ndikuwonetsa gulu la NDVI pogwiritsa ntchito imshow(). Njira ya colorbar () imawonjezera mtundu wa colorbar pachiwembucho, ndikupangitsa kuti NDVI ikhale yowonera.
Kuti tiyang'ane kwambiri pa chiwonetsero cha NDVI, timafotokozeranso mawu ofotokozera chiwembucho ndikuchotsa zilembo za axis ndi axis('off'). Pomaliza, chiwembucho chikuwonetsedwa ndi plt.show().
Mauthenga olakwika amalembedwa ku kontrakitala ngati chithunzicho chilibe mabandi ofunikira pakuwerengera kwa NDVI (ie, zosakwana magulu anayi).
5. Kubweretsa Chithunzi cha Satellite Kutseka
Ndibwino kugwiritsa ntchito ntchito yotseka () kuti mutseke fayilo yazithunzi za satellite mutatha kusanthula ndikuwonera. Izi zimamasula zida zilizonse zolumikizidwa ndi fayilo yazithunzi.
satellite_image.close()
Nayi yankho langa:
Ndichoncho!
Mfundo Zomaliza
Ntchito ya Python pothandizira kafukufuku wazinthu zazikuluzikuluzi zikuchulukirachulukira pamene kupezeka ndi kusamvana kwa zithunzi za satana zikuchulukirachulukira.
Kutha kugwiritsa ntchito Python kupeza, kukonza, kusanthula, ndikuwonetsa zithunzi za satellite kumapereka njira yopangira zopangira ndi zidziwitso zomwe zingapangitse kusintha kwabwino komanso kudziwa zambiri zadziko lathu lapansi.
Kumbukirani kufufuza zinthu zambiri, maphunziro, ndi malaibulale omwe alipo kuti muwonjezere chidziwitso chanu ndi luso lanu pamene mukupitiriza ulendo wanu pakusanthula zithunzi za satellite pogwiritsa ntchito Python.
Pitilizani kukhala ndi chidwi, fufuzani, ndikugwiritsa ntchito luso la Python kuti muvumbulutse zinsinsi zobisika mkati mwa zithunzi za satana.
Siyani Mumakonda