Ang pagmonitor sa kalikopan, agrikultura, pagplano sa kasyudaran, pagdumala sa katalagman, ug mga pagtuon sa pagbag-o sa klima tanan nakabenepisyo gikan sa pagtuki sa imahe sa satellite.
Makakuha kita og mahinungdanong mga panabut sa mga kinaiya, kausaban, ug dinamika sa atong planeta pinaagi sa pagpahimulos sa daghan kaayong datos nga natala sa mga satellite nga nagtan-aw sa Yuta.
Ang Python, usa ka versatile ug lig-on nga programming language, nagtanyag sa usa ka dato nga ekosistema sa mga librarya ug mga himan alang sa paspas ug epektibo nga pagproseso sa satellite imagery.
Ang paggamit sa pagtuki sa satellite imagery nagbukas sa usa ka kalibutan sa mga posibilidad. Makapahimo kini kanamo sa pagkuha sa mapuslanong impormasyon gikan sa mga litrato sa satellite, sama sa pagklasipikar sa tabon sa yuta, pagtimbang-timbang sa kahimsog sa mga tanom, pagsubay sa pagpalapad sa kasyudaran, ug pagmapa sa baybayon.
Dali namong maproseso, mapakita, ug analisahon ang mga imahe sa satellite pinaagi sa pagpahimulos sa versatility ug modules sa Python sama sa rasterio, numpy, ug matplotlib.
Usa sa mga nag-unang benepisyo sa paggamit sa Python alang sa satellite imagery analysis mao ang halapad nga han-ay sa geospatial data processing modules.
Ang Rasterio, pananglitan, adunay usa ka yano nga interface alang sa pagbasa ug pagbag-o sa impormasyon sa raster, nga naghimo niini nga angay alang sa pagtrabaho sa mga file sa imahe sa satellite.
Ang numpy module naghatag og sopistikado nga mga operasyon sa array para sa paghimo sa paspas nga mga kalkulasyon ug estadistika sa datos sa hulagway. Gitugotan usab kami sa Matplotlib nga makamugna mga may kalabotan nga biswal aron makatabang sa paghubad ug komunikasyon sa mga resulta sa analitiko.
Sa mosunod nga mga seksyon, atong tan-awon ang aktuwal nga mga pananglitan ug mga snippet sa code aron ipakita kung giunsa paggamit ang Python sa pag-analisar sa mga litrato sa satellite.
Atong hisgotan kung giunsa ang pag-abli sa mga litrato sa satellite, paghanduraw sa datos sa imaging, pagkuha sa metadata, pagkalkula sa mga istatistika sa banda, ug pagpadagan sa partikular nga pagtuki sama sa Normalized Difference Vegetation Index (NDVI).
Kini nga mga pananglitan makatabang kanimo sa pagsugod sa makaiikag nga hilisgutan sa pag-analisar sa mga imahe sa satellite gamit ang Python.
Una, kinahanglan namon nga mag-import og pipila ka mga librarya aron matabangan kami sa among buluhaton.
import rasterio
import matplotlib.pyplot as plt
import numpy as np
1. Pagtan-aw ug Pag-abli sa Satellite Image
Atong himoon ang Rasterio library niini nga seksyon aron ma-access ang satellite image nga gihatag sa satellite_image_path.
Ang file sa imahe giablihan gamit ang rasterio.open() nga pamaagi, ug ang resulta nga butang, satellite_image, nagrepresentar sa giablihan nga imahe.
Alang niini nga buluhaton, akong gigamit ang hulagway gikan niini nga link: https://unsplash.com/photos/JiuVoQd-ZLk ug gitipigan kini sa akong kompyuter ingong “satellite.jpg”.
# Open the satellite image using rasterio
satellite_image_path = 'satellite.jpg'
satellite_image = rasterio.open(satellite_image_path)
Pagkahuman sa pag-abli sa litrato, among gibasa kini ingon usa ka laray gamit ang function sa pagbasa () sa satellite_image object. Ang mga kantidad sa pixel alang sa matag banda sa mga hulagway sa satellite gitipigan sa han-ay sa imahe.
# Read the image as an array
image_array = satellite_image.read()
Aron makita ang pagtan-aw sa satellite nga hulagway, among gigamit ang matplotlib.pyplot tool aron makamugna og 10×10-inch nga numero.
Ang laray sa hulagway gipakita gamit ang imshow() nga pamaagi. Ang transpose(1, 2, 0) nga operasyon gigamit sa paghan-ay pag-usab sa mga dimensyon sa laray sa hulagway aron mohaum sa han-ay nga gipaabot sa imshow().
Sa katapusan, ang axis('off') nagtago sa mga label sa axis, nga naghatag ug tin-aw nga pagtan-aw sa hulagway sa satellite.
# Visualize the image
plt.figure(figsize=(10, 10))
plt.imshow(image_array.transpose(1, 2, 0))
plt.axis('off')
plt.show()
2. Pagkuha sa Metadata
Gikuha namo ang mahinungdanong impormasyon sa metadata bahin sa hulagway sa satellite human kini maablihan ug ipakita. Kini nga impormasyon nagtabang kanato sa pagsabot sa mga kalidad sa hulagway ug nagtanyag sa konteksto alang sa umaabot nga imbestigasyon.
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)
Gamit ang gilapdon ug gitas-on nga mga hiyas sa satellite_image object, gikuha namo ang gilapdon ug gitas-on sa hulagway. Ang kabtangan sa crs gigamit aron makuha ang coordinate reference system (CRS) sa imahe.
Ang CRS naghatag og impormasyon sa spatial reference system sa hulagway, nga nagtugot kanamo sa pagpares sa mga image coordinates sa tinuod nga kalibutan nga mga dapit.
Sa katapusan, gigamit namo ang count attribute sa satellite_image object aron makalkulo ang gidaghanon sa mga banda sa hulagway. Kini nga datos mahinungdanon alang sa ulahi nga pagtuki tungod kay kini nagtugot kanato sa pagkuha sa pixel values alang sa matag banda sa picture array.
3. Pagkalkula sa Band Statistics
Among kuwentahon ang mga estadistika alang sa matag banda sa laray sa mga hulagway niini nga bahin. Ang usa ka loop nagbalikbalik sa matag banda, ug ang min, max, mean, ug std function sa numpy library gigamit sa pagkuwenta niini nga mga estadistika.
Ang usa ka lista sa mga diksyonaryo nagtipig sa mga estadistika alang sa matag banda.
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)
Ang loop cycles sa matag banda, uban sa variable band nga nagrepresentar sa band index. Gamit ang image_array[band], among gikuha ang pixel values gikan sa image array para sa matag banda.
Dayon, alang sa kasamtangan nga banda, ang np.min(), np.max(), np.mean(), ug np.std() functions gigamit sa pagtino sa minimum, maximum, mean, ug standard deviation sa pixel mga mithi.
Ang kalkulado nga datos alang sa matag banda gitipigan sa usa ka diksyonaryo nga adunay mga yawe sama sa 'Band,' 'Min,' 'Max,' 'Mean,' ug 'Std. Ang matag diksyonaryo gidugang sa lista sa mga istatistika sa banda. Sa katapusan, ang datos sa matag banda giimprinta sa console.
4. Pagkalkula sa NDVI (Normalized Difference Vegetation Index).
Ang NDVI usa ka popular nga sukod sa pagsukod sa kahimsog sa mga tanum. Niini nga seksyon, atong susihon kung ang hulagway naglakip sa labing menos upat ka mga banda, nga gikinahanglan alang sa NDVI computation.
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.")
Sa pagsugod, among gibutang ang red_band ug nir_band variables ngadto sa Wala. Ang image_count variable gigamit dayon aron mahibal-an kung ang imahe adunay labing menos upat ka mga banda.
Kon mao, atong isulti nga ang pula nga banda mao ang indeks 2 ug ang duol-infrared (NIR) nga banda kay ang indeks 3. Ang matching bands gikan sa laray sa mga hulagway gi-assign sa mga variable nga red_band ug nir_band.
Kung ang red ug NIR bands kay accessible, ang NDVI kalkulado gamit ang formula (NIR – Red) / (NIR + Red). Ang mga numero sa NDVI nga resulta nagpakita sa indeks sa mga tanom alang sa matag pixel sa hulagway.
Dayon atong makita ang NDVI pinaagi sa paghimo og bag-ong numero ug ipakita ang NDVI array gamit ang imshow(). Ang colorbar() nga pamaagi nagdugang ug colorbar sa plot, naghatag sa NDVI values og visual reference.
Aron bug-os nga ma-focus ang NDVI display, dugangan namon nga gitakda ang usa ka caption alang sa laraw ug tangtangon ang mga label sa axis nga adunay axis ('off'). Sa katapusan, ang laraw gipakita sa plt.show().
Usa ka mensahe sa sayop ang gisulat sa console kung ang hulagway kulang sa gikinahanglan nga mga banda alang sa NDVI computation (ie, ubos sa upat ka mga banda).
5. Pagtapos sa Satellite Image
Labing maayo nga praktis ang paggamit sa close() function aron isira ang satellite picture file pagkahuman sa pag-analisar ug pagtan-aw. Gipagawas niini ang bisan unsang mga kapanguhaan sa sistema nga nalambigit sa file sa litrato.
satellite_image.close()
Ania ang akong solusyon:
Mao kana!
Final Notes
Ang tahas sa Python sa pagtabang sa pagtuon niining dagkong mga dataset nahimong mas importante samtang ang pagkaanaa ug resolusyon sa mga hulagway sa satellite nagkadaghan.
Ang katakus sa paggamit sa Python sa pag-access, pagproseso, pag-analisar, ug pagpakita sa mga imahe sa satellite nagtanyag sa dalan alang sa mga mamugnaon nga aplikasyon ug mga panabut nga mahimong magduso sa maayong pagbag-o ug labi ka kahibalo sa atong kalibutan.
Hinumdumi nga tukion ang daghang pagpili sa mga kapanguhaan, mga panudlo, ug mga librarya nga magamit aron madugangan ang imong kahibalo ug mga abilidad samtang nagpadayon ka sa imong adventure sa pag-analisar sa satellite imagery gamit ang Python.
Ipadayon ang pagkainteresado, pagsuhid, ug gamita ang mga abilidad ni Python aron madiskubre ang mga misteryo nga gilubong sa sulod sa mga hulagway sa satellite.
Leave sa usa ka Reply