Çavdêriya jîngehê, çandinî, plansaziya bajarî, rêveberiya karesatê, û lêkolînên guherîna avhewa hemî ji analîzên wêneyên satelîtê sûd wergirtine.
Em dikarin di derheqê taybetmendî, guhertin û dînamîkên gerstêrka xwe de têgihiştinên girîng bi dest bixin bi karanîna jimarek girseyî ya daneyên ku ji hêla peykên çavdêriya Erdê ve hatine tomar kirin.
Python, zimanek bernamenûsê ya pirreng û bihêz, ekosîstemek dewlemend a pirtûkxane û amûran pêşkêşî dike ji bo hilberandina wêneya satelîtê ya bilez û bi bandor.
Bikaranîna analîza wêneyên satelîtê cîhanek derfetan vedike. Ew me dihêle ku em agahdariya kêrhatî ji wêneyên satelîtê derxînin, wek kategorîzekirina serpêhatiya axê, nirxandina tenduristiya nebatan, şopandina berfirehbûna bajarî, û nexşeya peravê.
Em dikarin bi hêsanî wêneyên satelîtê bi karanîna piralîûçalakî û modulên Python ên wekî rasterio, numpy, û matplotlib bi kar bînin, bişopînin, û analîz bikin.
Yek ji feydeyên bingehîn ên karanîna Python-ê ji bo analîzkirina wêneyên satelîtê rêza wê ya berfireh a modulên hilberandina daneya erdnîgarî ye.
Mînakî, Rasterio xwedan navgînek hêsan e ji bo xwendin û guheztina agahdariya rasterê, ku ew ji bo xebata bi pelên wêneyên satelîtê re maqûl dike.
Modula numpy ji bo pêkanîna hesabên bilez û statîstîkên li ser daneya wêneyê, operasyonên rêzê yên sofîstîke peyda dike. Matplotlib di heman demê de rê dide me ku em dîmenên têkildar biafirînin da ku di şîrovekirin û ragihandina encamên analîtîk de bibin alîkar.
Di beşên jêrîn de, em ê li mînakên rastîn û perçeyên kodê binêrin da ku nîşan bidin ka Python çawa dikare ji bo analîzkirina wêneyên satelîtê were bikar anîn.
Em ê biçin ser ka meriv çawa wêneyên satelîtê vedike, daneyên wênekêşandinê xuyang dike, metadata derdixe, statîstîkên bandê hesab dike, û analîzên taybetî yên mîna Endeksa Nebatê ya Cûdahiya Normalîzekirî (NDVI) dimeşîne.
Van mînakan dê ji we re bibin alîkar ku hûn di mijara balkêş a analîzkirina wêneyên satelîtê de bi Python re dest pê bikin.
Pêşîn, pêdivî ye ku em hin pirtûkxaneyan derxînin da ku di karê me de alîkariya me bikin.
import rasterio
import matplotlib.pyplot as plt
import numpy as np
1. Dîtin û Vekirina Wêneyê Satellite
Em ê di vê beşê de pirtûkxaneya Rasterio bigihînin wêneya satelîtê ya ku ji hêla satellite_image_path ve hatî peyda kirin.
Pela wêneyê bi rêbaza rasterio.open() tê vekirin, û tişta encam, satelîta_image, wêneya vekirî temsîl dike.
Ji bo vî karî, min wêneyê ji vê lînkê bikar aniye: https://unsplash.com/photos/JiuVoQd-ZLk û li ser komputera xwe wekî "satellite.jpg" tomar kiriye.
# Open the satellite image using rasterio
satellite_image_path = 'satellite.jpg'
satellite_image = rasterio.open(satellite_image_path)
Piştî vekirina wêneyê, em wê wekî rêzek bi karanîna fonksiyona xwendinê() ya objecta satellite_image dixwînin. Nirxên pixelê yên ji bo her band wêneyên satelîtê di rêzika wêneyê de têne hilanîn.
# Read the image as an array
image_array = satellite_image.read()
Ji bo nirxandina dîtbarî wêneya satelîtê, em amûra matplotlib.pyplot bikar tînin da ku jimarek 10×10-inch çêbikin.
Rêzeya wêneyê bi rêbaza imshow() tê nîşandan. Operasyona transpose(1, 2, 0) ji bo ji nû ve rêzkirina pîvanên rêza wêneyê li gorî rêzika ku ji hêla imshow() ve hatî pêşbînîkirin tê bikar anîn.
Di dawiyê de, axis ('off') etîketên eksê vedişêre, dîmenek zelal a wêneya satelîtê dide.
# Visualize the image
plt.figure(figsize=(10, 10))
plt.imshow(image_array.transpose(1, 2, 0))
plt.axis('off')
plt.show()
2. Derxistina Metadata
Em agahdariya metadata girîng a di derbarê wêneya satelîtê de piştî vekirin û nîşandana wê derdixin. Ev agahdarî ji me re dibe alîkar ku em kalîteyên wêneyê fam bikin û ji bo vekolîna pêşerojê çarçoveyek pêşkêşî dike.
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)
Bi karanîna taybetmendiyên firehî û bilindî yên objekta satelîtê_image, em firehî û bilindahiya wêneyê derdixin. Taybetmendiya crs ji bo wergirtina pergala referansa hevrêziya wêneyê (CRS) tê bikar anîn.
CRS li ser pergala referansa mekan a wêneyê agahdarî dide, dihêle ku em koordînatên wêneyê bi cîhên cîhana rastîn re li hev bikin.
Di dawiyê de, em taybetmendiya hejmartinê ya objekta satelîtê_image bikar tînin da ku hejmara bendên di wêneyê de hesab bikin. Ev dane ji bo analîza paşîn krîtîk e ji ber ku ew dihêle ku em nirxên pixelê ji bo her bandê di rêza wêneyê de bistînin.
3. Hesabkirina Statîstîkên Band
Em di vê beşê de statîstîkên ji bo her bendek di rêzika wêneyê de hesab dikin. Xalek li ser her bandê dubare dibe, û fonksiyonên min, max, navîn û std yên pirtûkxaneya numpy ji bo hesabkirina van statîstîkan têne bikar anîn.
Lîsteya ferhengan îstatîstîkên her bandê diparêze.
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)
Loop li seranserê her bandê dizivire, digel ku bandê guhêrbar nîşaneya bandê temsîl dike. Bi karanîna image_array[band], em ji bo her bandê nirxên pixelê ji rêza wêneyê derdixin.
Dûv re, ji bo bendava heyî, fonksiyonên np.min (), np.max (), np.mean (), û np.std () têne bikar anîn da ku herî kêm, herî zêde, navîn û veguheztina standard a pîxelê diyar bikin. nirxên.
Daneyên hesabkirî yên ji bo her komê di ferhengekê de bi bişkojkên mîna 'Band', 'Min', 'Max', 'Mean' û 'Std' têne tomar kirin. Her ferheng bi navnîşa statîstikên komê re tê pêve kirin. Di dawiyê de, daneyên her bandê li konsolê têne çap kirin.
4. Hesabkirina NDVI (Navdeksa Nebatê Cûdahiya Normalized).
NDVI ji bo pîvandina tenduristiya nebatan pîvanek populer e. Di vê beşê de, em kontrol dikin ku bibînin ka wêne bi kêmî ve çar bend hene, ku ji bo hesabkirina NDVI hewce ne.
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.")
Ji bo destpêkê, me guhêrbarên red_band û nir_band li None danîn. Dûv re guherbara image_count tê bikar anîn da ku diyar bike ka wêne herî kêm çar ben dihewîne.
Ger wusa be, em têdigihin ku band sor index 2 ye û band-infrasor (NIR) index 3 ye. Bendên lihevhatî yên ji rêza wêneyê ji guhêrbarên red_band û nir_band re têne destnîşan kirin.
Ger herdu bandên sor û NIR bigihîjin, NDVI bi formula (NIR - Sor) / (NIR + Sor) tê hesibandin. Hejmarên NDVI yên ku di encamê de têne destnîşan kirin ji bo her pixelek di wêneyê de nîşana nebatê destnîşan dikin.
Dûv re em NDVI-yê bi afirandina jimarek nû û bi karanîna imshow() array NDVI-ê nîşan didin dibînin. Rêbaza rengbar() rengdêrekê li xêzekê zêde dike, nirxên NDVI referansek dîtbarî dide.
Ji bo ku em bi tevahî li ser dîmendera NDVI-yê hûr bibin, em ji bo nexşeyê sernavek din diyar dikin û etîketên eksê bi eksê ('off') jê dikin. Di dawiyê de, nexşe bi plt.show() tê nîşandan.
Heke di wêneyê de bendên pêwîst ên ji bo hesabkirina NDVI (ango, ji çar beşan kêmtir) tune be, ji konsolê re peyamek çewtiyek tê nivîsandin.
5. Nêzîkî Wêneya Satelîtê
Pratîka çêtirîn e ku meriv fonksiyona nêzîk () bikar bîne da ku pelê wêneya satelîtê piştî analîzkirin û temaşekirinê bigire. Vê yekê çavkaniyên pergalê yên ku bi pelê wêneyê ve girêdayî ne azad dike.
satellite_image.close()
Li vir çareseriya min e:
Her eve!
Final Notes
Rola Python di arîkariya lêkolîna van danehevên girseyî de her ku diçe zêde dibe û hebûna wêneyên satelîtê zêde dibe.
Kapasîteya karanîna Python ji bo gihîştin, pêvajokirin, analîzkirin û nîşankirina wêneyên satelîtê rêyek ji bo serîlêdanên afirîner û têgihîştinên ku dibe ku guhertinek baş û zanîna mezin a cîhana me derxîne pêşkêşî dike.
Bînin bîra xwe ku hûn hilbijarka mezin a çavkanî, hîndekar û pirtûkxaneyên berdest keşf bikin da ku zanîn û jêhatîbûna xwe zêde bikin dema ku hûn serpêhatiya xwe di analîza wêneyên satelîtê de bi karanîna Python-ê didomînin.
Berdewam eleqedar bibin, keşif bikin û şiyanên Python bikar bînin da ku sirên ku di hundurê wêneyên satelîtê de hatine veşartin eşkere bikin.
Leave a Reply