ʻO ka nānā ʻana i ke kaiapuni, ka mahiʻai, ka hoʻolālā kūlanakauhale, ka hoʻokele pōʻino, a me nā noiʻi hoʻololi ʻana i ke aniau ua pōmaikaʻi nā mea a pau mai ka nānā ʻana i nā kiʻi satelite.
Hiki iā mākou ke loaʻa nā ʻike koʻikoʻi e pili ana i nā ʻano, nā loli, a me nā dynamics o ko mākou honua ma o ka hoʻohana ʻana i ka nui o ka ʻikepili i hoʻopaʻa ʻia e nā satelite nānā honua.
Hāʻawi ʻo Python, kahi ʻōlelo hoʻonohonoho maʻalahi a ikaika hoʻi, i kahi kaiaola waiwai o nā hale waihona puke a me nā mea hana no ka hoʻoili kiʻi kiʻi ukali wikiwiki a maikaʻi.
I ka hoʻohana 'ana paha kālai kiʻi ukali wehe i kahi honua o nā mea hiki. Hiki iā mākou ke unuhi i ka ʻike pono mai nā kiʻi ukali, e like me ka hoʻokaʻawale ʻana i ka uhi ʻāina, ka loiloi olakino o nā mea kanu, ka nānā ʻana i ka hoʻonui ʻana i ke kūlanakauhale, a me ka palapala ʻāina kahakai.
Hiki iā mākou ke hana maʻalahi, hōʻike, a nānā i nā kiʻi ukali ma o ka hoʻohana ʻana i ka versatility a me nā modules o Python e like me rasterio, numpy, a me matplotlib.
ʻO kekahi o nā pono nui o ka hoʻohana ʻana iā Python no ka nānā ʻana i nā kiʻi kiʻi satellite ʻo ia ka laulā o nā modula hoʻoili ʻikepili geospatial.
He laʻana maʻalahi ʻo Rasterio no ka heluhelu ʻana a me ka hoʻololi ʻana i ka ʻike raster, i kūpono no ka hana ʻana me nā faila kiʻi satellite.
Hāʻawi ka module numpy i nā hana hoʻonohonoho maʻalahi no ka hana ʻana i nā helu wikiwiki a me nā ʻikepili ma ka ʻikepili kiʻi. Hiki iā Matplotlib ke hana i nā hiʻohiʻona kūpono e kōkua i ka wehewehe ʻana a me ka kamaʻilio ʻana i nā hopena analytic.
Ma nā ʻāpana aʻe, e nānā mākou i nā hiʻohiʻona maoli a me nā snippet code e hōʻike i ke ʻano o ka hoʻohana ʻana iā Python e kālailai i nā kiʻi ukali.
E aʻo mākou pehea e wehe ai i nā kiʻi ukali, e ʻike i ka ʻikepili kiʻi, e unuhi i ka metadata, e helu i nā helu helu band, a e holo i ka loiloi kikoʻī e like me ka Normalized Difference Vegetation Index (NDVI).
E kōkua kēia mau hiʻohiʻona iā ʻoe e hoʻomaka i ke kumuhana hoihoi o ka nānā ʻana i nā kiʻi satellite me Python.
ʻO ka mea mua, pono mākou e hoʻokomo i kekahi mau hale waihona puke e kōkua iā mākou i kā mākou hana.
import rasterio
import matplotlib.pyplot as plt
import numpy as np
1. Nānā a wehe ʻana i ke Kiʻi Satellite
E hele mākou i ka waihona Rasterio ma kēia ʻāpana e kiʻi i ke kiʻi ukali i hoʻolako ʻia e ka satellite_image_path.
Wehe ʻia ka faila kiʻi me ke ʻano rasterio.open(), a ʻo ka mea i loaʻa, satellite_image, e hōʻike ana i ke kiʻi i wehe ʻia.
No kēia hana, ua hoʻohana au i ke kiʻi mai kēia loulou: https://unsplash.com/photos/JiuVoQd-ZLk a mālama ʻia ma kaʻu kamepiula ma ke ʻano he "satellite.jpg".
# Open the satellite image using rasterio
satellite_image_path = 'satellite.jpg'
satellite_image = rasterio.open(satellite_image_path)
Ma hope o ka wehe ʻana i ke kiʻi, heluhelu mākou iā ia ma ke ʻano he array me ka hoʻohana ʻana i ka hana heluhelu () mea heluhelu satellite_image. Mālama ʻia nā waiwai pika no kēlā me kēia pūʻulu o nā kiʻi ukali i loko o ka papa kiʻi.
# Read the image as an array
image_array = satellite_image.read()
No ka loiloi ʻike maka i ke kiʻi ukali, hoʻohana mākou i ka mea hana matplotlib.pyplot e hana i kahi kiʻi 10x10-inihi.
Hōʻike ʻia ke kiʻi kiʻi me ka hoʻohana ʻana i ke ʻano imshow(). Hoʻohana ʻia ka hana transpose (1, 2, 0) no ka hoʻonohonoho hou ʻana i nā ana o ke kiʻi kiʻi e kūpono i ke kauoha i manaʻo ʻia e imshow().
ʻO ka hope, hūnā ʻo axis('off') i nā lepili axis, e hāʻawi ana i kahi ʻike maopopo o ke kiʻi ukali.
# Visualize the image
plt.figure(figsize=(10, 10))
plt.imshow(image_array.transpose(1, 2, 0))
plt.axis('off')
plt.show()
2. Wehewehe Metadata
Wehe mākou i ka ʻike metadata koʻikoʻi e pili ana i ke kiʻi ukali ma hope o ka wehe ʻana a hōʻike. Kōkua kēia ʻike iā mākou i ka hoʻomaopopo ʻana i nā ʻano o ke kiʻi a hāʻawi i ka pōʻaiapili no ka hoʻokolokolo ʻana e hiki mai ana.
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)
Ke hoʻohana nei i nā ʻano laulā a me ke kiʻekiʻe o ka mea satellite_image, lawe mākou i ka laulā kiʻi a me ke kiʻekiʻe. Hoʻohana ʻia ka waiwai crs e kiʻi i ka ʻōnaehana kuhikuhi hoʻonohonoho kiʻi (CRS).
Hāʻawi ka CRS i ka ʻike e pili ana i ka ʻōnaehana kuhikuhi kikoʻī o ke kiʻi, e ʻae iā mākou e hoʻohālikelike i nā hoʻonohonoho kiʻi i nā wahi honua maoli.
ʻO ka hope, hoʻohana mākou i ke ʻano helu o ka mea satellite_image no ka helu ʻana i ka helu o nā kaula i ke kiʻi. He mea koʻikoʻi kēia ʻikepili no ka nānā ʻana ma hope no ka mea hiki iā mākou ke kiʻi i nā waiwai pixel no kēlā me kēia hui i ke kiʻi kiʻi.
3. Helu Helu Ana
Ke helu nei mākou i nā ʻikepili no kēlā me kēia pūʻulu ma ka ʻāpana kiʻi ma kēia ʻāpana. Hoʻohana ʻia ka loop loop ma kēlā me kēia hui, a hoʻohana ʻia nā hana min, max, mean, a me std o ka waihona numpy no ka helu ʻana i kēia mau helu.
Ma kahi papa inoa o nā puke wehewehe ʻōlelo e mālama i nā ʻikepili no kēlā me kēia hui.
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)
Holoi ka loop i kēlā me kēia pūʻulu, me ka pūʻulu hoʻololi e hōʻike ana i ka papa kuhikuhi band. Me ka hoʻohana ʻana i ke kiʻi_array[band], e unuhi mākou i nā waiwai pixel mai ka papa kiʻi no kēlā me kēia hui.
A laila, no ka pūʻulu o kēia manawa, ua hoʻohana ʻia nā hana np.min(), np.max(), np.mean(), a me np.std() no ka hoʻoholo ʻana i ka palena liʻiliʻi, ka nui, ka mean, a me ka ʻokoʻa maʻamau o ka pika. waiwai.
Mālama ʻia ka ʻikepili i helu ʻia no kēlā me kēia hui ma kahi puke wehewehe ʻōlelo me nā kī e like me 'Band,' 'Min,' 'Max,' 'Mean,' a me 'Std. Hoʻopili ʻia kēlā me kēia puke wehewehe i ka papa inoa o nā stats band. ʻO ka hope, paʻi ʻia nā ʻikepili o kēlā me kēia hui i ka console.
4. NDVI (Normalized Difference Vegetation Index) Heluhelu
ʻO ka NDVI kahi ana kaulana no ke ana ʻana i ke olakino o nā mea kanu. Ma kēia ʻāpana, nānā mākou e ʻike inā loaʻa i ke kiʻi ma kahi o ʻehā mau pūʻulu, i koi ʻia no ka helu 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.")
No ka hoʻomaka ʻana, hoʻonoho mākou i nā ʻāpana ʻulaʻula a me ka nir_band i ʻAʻohe. A laila hoʻohana ʻia ka ʻano helu_kiʻi e hoʻoholo inā loaʻa i ke kiʻi nā ʻehā ʻehā.
Inā pēlā, manaʻo mākou ʻo ka pūʻulu ʻulaʻula he index 2 a ʻo ka band near-infrared (NIR) ʻo index 3. Ua hāʻawi ʻia nā kaula hoʻohālikelike mai ka papa kiʻi i nā mea hoʻololi red_band a me nir_band.
Inā hiki ke loaʻa nā pūʻulu ʻulaʻula a me NIR, ua helu ʻia ka NDVI me ka hoʻohana ʻana i ke kumu (NIR – Red) / (NIR + Red). Hōʻike nā helu NDVI i ka helu mea kanu no kēlā me kēia pika ma ke kiʻi.
A laila ʻike mākou i ka NDVI ma ka hana ʻana i kahi kiʻi hou a hōʻike i ka array NDVI me ka hoʻohana ʻana i imshow (). Hoʻohui ke ʻano colorbar () i kahi kala kala i ka pā, e hāʻawi ana i nā waiwai NDVI i kahi kuhikuhi ʻike.
No ka nānā pono ʻana i ka hōʻike NDVI, hōʻike pū mākou i kahi caption no ka pā a wehe i nā lepili axis me ke axis ('off'). ʻO ka hope, hōʻike ʻia ka ʻāpana me plt.show().
Ua kākau ʻia kahi memo hewa i ka console inā nele ke kiʻi i nā ʻāpana e pono ai no ka helu NDVI (ʻo ia hoʻi, emi iho ma mua o ʻehā mau pūʻulu).
5. Hoʻopau i ke Kiʻi Satellite
ʻOi aku ka maikaʻi o ka hoʻohana ʻana i ka hana kokoke () e pani i ka faila kiʻi satellite ma hope o ka hana ʻana i ka nānā ʻana a me ka nānā ʻana. Hoʻokuʻu kēia i nā kumuwaiwai pūnaewele i pili i ka faila kiʻi.
satellite_image.close()
Eia kaʻu hoʻonā:
O ia wale nō!
Nā Paʻa hope
ʻO ke kuleana o Python i ke kōkua ʻana i ke aʻo ʻana i kēia mau ʻikepili nui e lilo i mea nui i ka piʻi ʻana a me ka hoʻonā ʻana o nā kiʻi ukali.
ʻO ka hiki ke hoʻohana i ka Python no ke komo ʻana, kaʻina hana, ka nānā ʻana, a me ka hōʻike ʻana i nā kiʻi ukali e hāʻawi i ke ala no nā noi hana a me nā ʻike e hiki ai ke hoʻololi i ka loli maikaʻi a me ka ʻike nui o ko mākou honua.
E hoʻomanaʻo i ka ʻimi ʻana i ka koho nui o nā kumuwaiwai, nā kumu aʻo, a me nā hale waihona puke e hoʻonui ai i kou ʻike a me kou hiki ke hoʻomau i kāu huakaʻi i ka nānā ʻana i nā kiʻi satellite me ka hoʻohana ʻana iā Python.
E hoʻomau i ka hoihoi, e ʻimi, a e hoʻohana i nā mana o Python e wehe i nā mea pohihihi i kanu ʻia i loko o nā kiʻi ukali.
Waiho i ka Reply