Tlhokomelo ea tikoloho, temo, moralo oa litoropo, taolo ea likoluoa, le lithuto tsa phetoho ea maemo a leholimo kaofela li ruile molemo tlhahlobong ea litšoantšo tsa satellite.
Re ka fumana leseli la bohlokoa mabapi le litšobotsi tsa polanete ea rona, liphetoho le matla a teng ka ho sebelisa lintlha tse ngata tse tlalehiloeng ke lisathelaete tse shebileng Lefatše.
Python, puo ea mananeo e feto-fetohang le e matla, e fana ka tikoloho e ngata ea lilaebrari le lisebelisoa bakeng sa ts'ebetso ea litšoantšo tsa satellite tse potlakileng le tse sebetsang.
Ho sebelisoa ha tlhahlobo ea litšoantšo tsa sathelaete e bula lefatše la menyetla. E re thusa ho fumana lintlha tse molemo litšoantšong tsa sathelaete, tse kang ho aroloa ha libaka tse ka tlas'a lefatše, tlhahlobo ea bophelo bo botle ba limela, ho latela katoloso ea litoropo le 'mapa oa lebopo.
Re ka khona ho sebetsa, ho bonts'a le ho sekaseka litšoantšo tsa sathelaete habonolo ka ho sebelisa matla a mangata a Python le li-module tse kang rasterio, numpy le matplotlib.
O mong oa melemo ea mantlha ea ho sebelisa Python bakeng sa tlhahlobo ea litšoantšo tsa sathelaete ke mefuta e mengata ea li-module tsa ts'ebetso ea data ea geospatial.
Ka mohlala, Rasterio e na le sebopeho se bonolo sa ho bala le ho fetola tlhahisoleseding ea raster, e etsang hore e loketse ho sebetsa le lifaele tsa litšoantšo tsa sathelaete.
Mojule oa numpy o fana ka ts'ebetso e rarahaneng ea ho etsa lipalo ka potlako le lipalo-palo ho data ea litšoantšo. Matplotlib e boetse e re thusa ho hlahisa lipono tse nepahetseng ho thusa ho toloka le puisanong ea liphetho tsa tlhahlobo.
Likarolong tse latelang, re tla sheba mehlala ea 'nete le li-code snippets ho bonts'a hore na Python e ka sebelisoa joang ho sekaseka linepe tsa satellite.
Re tla shebana le mokhoa oa ho bula linepe tsa satellite, ho bona lintlha tsa litšoantšo, ho ntša metadata, ho bala lipalo-palo tsa sehlopha, le ho etsa tlhahlobo e khethehileng joalo ka Normalized Difference Vegetation Index (NDVI).
Mehlala ena e tla u thusa ho qala sehloohong se khahlang sa tlhahlobo ea litšoantšo tsa sathelaete le Python.
Taba ea pele, re hloka ho kenya lilaeborari tse ling ho tla re thusa ka mosebetsi oa rona.
import rasterio
import matplotlib.pyplot as plt
import numpy as np
1. Ho Boha le ho Bula Setšoantšo sa Satellite
Re tla laebrari ea Rasterio karolong ena ho fumana setšoantšo sa sathelaete se fanoeng ke satellite_image_path.
Faele ea setšoantšo e buloa ho sebelisoa mokhoa oa rasterio.open (), 'me ntho e hlahisoang, satellite_image, e emela setšoantšo se butsoeng.
Bakeng sa mosebetsi ona, ke sebelisitse setšoantšo se tsoang ho sehokelo sena: https://unsplash.com/photos/JiuVoQd-ZLk 'me ke se bolokile khomphuteng ea ka e le "satellite.jpg".
# Open the satellite image using rasterio
satellite_image_path = 'satellite.jpg'
satellite_image = rasterio.open(satellite_image_path)
Ka mor'a ho bula setšoantšo, re se bala e le sehlopha ho sebelisa satellite_image object's read() mosebetsi. Maemo a pixel bakeng sa sehlopha ka seng sa litšoantšo tsa sathelaete a bolokoa lethathamong la litšoantšo.
# Read the image as an array
image_array = satellite_image.read()
Ho hlahloba ka mahlo setšoantšo sa satellite, re sebelisa sesebelisoa sa matplotlib.pyplot ho hlahisa setšoantšo sa 10 × 10-inch.
Sehlopha sa litšoantšo se bontšoa ho sebelisoa mokhoa oa imshow (). Ts'ebetso ea transpose(1, 2, 0) e sebelisoa ho hlophisa bocha boholo ba setšoantšo hore se lumellane le tatellano e lebelletsoeng ke imshow().
Qetellong, axis('off') e pata lileibole tsa axis, e fana ka pono e hlakileng ea setšoantšo sa satellite.
# Visualize the image
plt.figure(figsize=(10, 10))
plt.imshow(image_array.transpose(1, 2, 0))
plt.axis('off')
plt.show()
2. Tlhahiso ea Metadata
Re ntša lintlha tsa bohlokoa tsa metadata mabapi le setšoantšo sa satellite ka mor'a ho se bula le ho se hlahisa. Lintlha tsena li re thusa ho utloisisa litšoaneleho tsa setšoantšo mme li fana ka moelelo oa lipatlisiso nakong e tlang.
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)
Re sebelisa litšobotsi tsa bophara le bophahamo ba ntho ea satellite_image, re ntša bophara ba setšoantšo le bophahamo. Thepa ea crs e sebelisoa ho khutlisa setšoantšo sa coordinate system (CRS).
CRS e fana ka leseli mabapi le sistimi ea litšupiso tsa sebaka sa setšoantšo, e re lumellang ho bapisa likhokahano tsa litšoantšo le libaka tsa lefatše tsa nnete.
Qetellong, re sebelisa tšobotsi ea palo ea ntho ea satellite_image ho bala palo ea lihlopha setšoantšong. Lintlha tsena li bohlokoa bakeng sa tlhahlobo ea morao-rao hobane e re lumella ho fumana boleng ba pixel bakeng sa sehlopha ka seng se lethathamong la litšoantšo.
3. Band Lipalopalo Calculation
Re bala lipalo-palo bakeng sa sehlopha ka seng setšoantšong sa litšoantšo karolong ena. Loop e pheta-pheta sehlopha se seng le se seng, 'me mesebetsi ea laeborari ea numpy, max, mean, le std e sebelisoa ho kopanya lipalo-palo tsena.
Lenane la lidikishinari le boloka lipalo-palo tsa sehlopha ka seng.
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)
Lulu e potoloha sehlopha se seng le se seng, ka sehlopha se feto-fetohang se emelang index ea sehlopha. Re sebelisa image_array[band], re ntša boleng ba pixel ho tsoa lethathamong la litšoantšo bakeng sa sehlopha ka seng.
Ebe, bakeng sa sehlopha sa hajoale, mesebetsi ea np.min(), np.max(), np.mean(), le np.std() e sebelisoa ho fumana bonyane, boholo, bo bolelang, le bo khelohang bo tloaelehileng ba pixel. litekanyetso.
Lintlha tse baliloeng tsa sehlopha ka seng li bolokiloe bukeng e hlalosang mantsoe e nang le linotlolo tse kang 'Band,' 'Min,' 'Max,' 'Mean,' le 'Std. Bukantswe ka nngwe e kenyeleditswe lenaneng la dipalopalo tsa sehlopha. Qetellong, lintlha tsa sehlopha ka seng li hatisoa ho console.
4. NDVI (Normalized Difference Vegetation Index) Palo
NDVI ke mokhoa o tsebahalang oa ho lekanya bophelo bo botle ba limela. Karolong ena, re hlahloba ho bona hore na setšoantšo se kenyelletsa bonyane lihlopha tse 'nè, tse hlokahalang bakeng sa ho bala 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.")
Ho qala, re beha mefuta e fapaneng ea red_band le nir_band ho None. The image_count variable e sebelisoa ho fumana hore na setšoantšo se na le bonyane lihlopha tse 'nè.
Haeba ho joalo, re nahana hore sehlopha se sefubelu ke index 2 'me sehlopha sa haufi-infrared (NIR) ke index 3. Lihlopha tse ts'oanang tse tsoang setšoantšong sa litšoantšo li abeloa ho mefuta e fapaneng red_band le nir_band.
Haeba lihlopha tse khubelu le tsa NIR li fumaneha, NDVI e baloa ho sebelisoa foromo (NIR - Red) / (NIR + Red). Linomoro tsa NDVI tse hlahisoang li bontša index ea limela bakeng sa pixel ka 'ngoe e setšoantšong.
Ebe re bona NDVI ka ho theha setšoantšo se secha le ho bonts'a sehlopha sa NDVI ho sebelisa imshow(). Mokhoa oa colorbar () o eketsa lebala la mebala morerong, o fa boleng ba NDVI pono ea pono.
Ho tsepamisa maikutlo ka botlalo ponts'ong ea NDVI, re boetse re hlakisa tlhaloso ea morero ebe re tlosa lileibole tsa axis ka axis('off'). Qetellong, morero o bontšoa ka plt.show().
Molaetsa oa phoso o ngolloa console haeba setšoantšo se haelloa ke lihlopha tse hlokahalang bakeng sa khomphutha ea NDVI (ke hore, lihlopha tse ka tlase ho tse 'nè).
5. Ho Tlisa Setšoantšo sa Satellite ho Koala
Ke mokhoa o motle oa ho sebelisa ts'ebetso ea close() ho koala faele ea setšoantšo sa satellite kamora ho etsa tlhahlobo le ho e shebella. Sena se lokolla lisebelisoa life kapa life tsa sistimi tse hokahantsoeng le faele ea setšoantšo.
satellite_image.close()
Tharollo ea ka ke ena:
Ho felile ke lehlohonolo!
Litlhahiso tsa ho qetela
Karolo ea Python ea ho thusa boithuto ba li-dataset tsena tse kholo e ntse e ba bohlokoa haholo ha ho fumaneha le tharollo ea litšoantšo tsa satellite li ntse li eketseha.
Bokhoni ba ho sebelisa Python ho fihlella, ho sebetsa, ho sekaseka le ho bonts'a litšoantšo tsa sathelaete ho fana ka tsela bakeng sa lits'ebetso tsa boqapi le temohisiso e ka tsamaisang phetoho e ntle le tsebo e kholo ea lefats'e la rona.
Hopola ho hlahloba mefuta e mengata ea lisebelisoa, lithupelo, le lilaebrari tse fumanehang ho eketsa tsebo le bokhoni ba hau ha u ntse u tsoela pele ka leeto la hau la tlhahlobo ea litšoantšo tsa sathelaete u sebelisa Python.
Tsoela pele ho thahasella, ho hlahloba le ho sebelisa bokhoni ba Python ho senola liphiri tse patiloeng ka har'a litšoantšo tsa satellite.
Leave a Reply