පාරිසරික නිරීක්ෂණ, කෘෂිකර්මාන්තය, නාගරික සැලසුම්කරණය, ආපදා කළමනාකරණය සහ දේශගුණික විපර්යාස අධ්යයනයන් චන්ද්රිකා ඡායාරූප විශ්ලේෂණයෙන් ප්රතිලාභ ලබා ඇත.
පෘථිවි නිරීක්ෂණ චන්ද්රිකා මගින් වාර්තා කරන ලද දැවැන්ත දත්ත ප්රමාණය ප්රයෝජනයට ගැනීමෙන් අපට අපගේ ග්රහලෝකයේ ලක්ෂණ, වෙනස්කම් සහ ගතිකත්වය පිළිබඳ සැලකිය යුතු අවබෝධයක් ලබා ගත හැක.
බහුකාර්ය සහ ශක්තිමත් ක්රමලේඛන භාෂාවක් වන Python, වේගවත් හා ඵලදායී චන්ද්රිකා ඡායාරූප සැකසීම සඳහා පුස්තකාල සහ මෙවලම් පොහොසත් පරිසර පද්ධතියක් ඉදිරිපත් කරයි.
ප්රයෝජනය චන්ද්රිකා ඡායාරූප විශ්ලේෂණය හැකියාවන්ගෙන් යුත් ලෝකයක් විවෘත කරයි. ඉඩම් ආවරණ වර්ගීකරණය, වෘක්ෂලතා සෞඛ්ය ඇගයීම, නාගරික ව්යාප්තිය නිරීක්ෂණය කිරීම සහ වෙරළ සිතියම්ගත කිරීම වැනි චන්ද්රිකා ඡායාරූපවලින් ප්රයෝජනවත් තොරතුරු ලබා ගැනීමට එය අපට හැකියාව ලබා දෙයි.
Python හි බහුකාර්යතාව සහ rasterio, numpy, සහ matplotlib වැනි මොඩියුල භාවිතා කිරීමෙන් අපට පහසුවෙන් චන්ද්රිකා ඡායාරූප සැකසීමට, ප්රදර්ශනය කිරීමට සහ විශ්ලේෂණය කිරීමට හැකිය.
චන්ද්රිකා ඡායාරූප විශ්ලේෂණය සඳහා Python භාවිතා කිරීමේ මූලික ප්රතිලාභයක් වන්නේ එහි පුළුල් පරාසයක භූගෝලීය දත්ත සැකසුම් මොඩියුලයි.
උදාහරණයක් ලෙස, Rasterio සතුව raster තොරතුරු කියවීම සහ වෙනස් කිරීම සඳහා සරල අතුරු මුහුණතක් ඇත, එය චන්ද්රිකා ඡායාරූප ගොනු සමඟ වැඩ කිරීමට සුදුසු වේ.
numpy මොඩියුලය පින්තූර දත්ත මත වේගවත් ගණනය කිරීම් සහ සංඛ්යාලේඛන සිදු කිරීම සඳහා නවීන අරා මෙහෙයුම් සපයයි. Matplotlib විශ්ලේෂණාත්මක ප්රතිඵල අර්ථකථනය කිරීමට සහ සන්නිවේදනයට උපකාර කිරීම සඳහා අදාළ දෘෂ්ය උත්පාදනය කිරීමට ද අපට හැකියාව ලබා දේ.
පහත කොටස් වලින්, චන්ද්රිකා ඡායාරූප විශ්ලේෂණය කිරීමට Python භාවිතා කළ හැකි ආකාරය පෙන්වීමට අපි සත්ය උදාහරණ සහ කේත කොටස් දෙස බලමු.
අපි චන්ද්රිකා ඡායාරූප විවෘත කරන්නේ කෙසේද, රූප දත්ත දෘශ්යකරණය කරන්නේ කෙසේද, පාර-දත්ත උපුටා ගන්නේ කෙසේද, කලාප සංඛ්යාලේඛන ගණනය කරන්නේ කෙසේද සහ සාමාන්යකරණය වූ වෙනස්කම් වෘක්ෂලතා දර්ශකය (NDVI) වැනි විශේෂිත විශ්ලේෂණයක් ක්රියාත්මක කරන්නේ කෙසේද යන්න අපි බලමු.
මෙම උදාහරණ ඔබට Python සමඟින් චන්ද්රිකා ඡායාරූප විශ්ලේෂණයේ කුතුහලය දනවන මාතෘකාවක් ආරම්භ කිරීමට උපකාරී වනු ඇත.
පළමුව, අපගේ කාර්යය සඳහා අපට උපකාර කිරීමට පුස්තකාල කිහිපයක් ආනයනය කළ යුතුය.
import rasterio
import matplotlib.pyplot as plt
import numpy as np
1. චන්ද්රිකා රූපය දෘශ්යකරණය සහ විවෘත කිරීම
satellite_image_path මඟින් සපයන චන්ද්රිකා රූපයට ප්රවේශ වීමට අපි මෙම කොටසේ Rasterio පුස්තකාලය ලබා දෙන්නෙමු.
රූප ගොනුව rasterio.open() ක්රමය භාවිතයෙන් විවෘත කර ඇති අතර, ප්රතිඵලයක් ලෙස ලැබෙන වස්තුව, satellite_image, විවෘත කළ රූපය නියෝජනය කරයි.
මෙම කාර්යය සඳහා, මම මෙම සබැඳියෙන් රූපය භාවිතා කර ඇත: https://unsplash.com/photos/JiuVoQd-ZLk සහ එය "satellite.jpg" ලෙස මගේ පරිගණකයේ සුරකින ලදී.
# Open the satellite image using rasterio
satellite_image_path = 'satellite.jpg'
satellite_image = rasterio.open(satellite_image_path)
පින්තූරය විවෘත කිරීමෙන් පසු, අපි එය satellite_image වස්තුවේ කියවීම () ශ්රිතය භාවිතයෙන් අරාවක් ලෙස කියවමු. චන්ද්රිකා පින්තූරවල එක් එක් කලාපය සඳහා පික්සල් අගයන් රූප අරාව තුළ ගබඩා කර ඇත.
# Read the image as an array
image_array = satellite_image.read()
චන්ද්රිකා පින්තූරය දෘශ්ය ලෙස ඇගයීමට, අපි අඟල් 10×10 රූපයක් ජනනය කිරීමට matplotlib.pyplot මෙවලම භාවිතා කරමු.
පින්තූර අරාව පෙන්වන්නේ imshow() ක්රමය භාවිතා කරමිනි. imshow() මගින් අපේක්ෂා කරන අනුපිළිවෙලට ගැලපෙන පරිදි පින්තූර අරාවේ මානයන් නැවත සකස් කිරීමට transpose(1, 2, 0) මෙහෙයුම භාවිතා කරයි.
අවසාන වශයෙන්, axis('off') චන්ද්රිකා පින්තූරයේ පැහැදිලි දර්ශනයක් ලබා දෙමින් අක්ෂ ලේබල සඟවයි.
# Visualize the image
plt.figure(figsize=(10, 10))
plt.imshow(image_array.transpose(1, 2, 0))
plt.axis('off')
plt.show()
2. පාරදත්ත උපුටා ගැනීම
චන්ද්රිකා පින්තූරය විවෘත කර ප්රදර්ශනය කිරීමෙන් පසු අපි එය පිළිබඳ වැදගත් පාරදත්ත තොරතුරු උපුටා ගනිමු. මෙම තොරතුරු අපට රූපයේ ගුණාංග අවබෝධ කර ගැනීමට සහ අනාගත විමර්ශනය සඳහා සන්දර්භය ලබා දීමට උපකාරී වේ.
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)
satellite_image වස්තුවේ පළල සහ උස ගුණාංග භාවිතා කරමින්, අපි රූපයේ පළල සහ උස උකහා ගනිමු. රූපයේ ඛණ්ඩාංක විමර්ශන පද්ධතිය (CRS) ලබා ගැනීමට crs දේපල භාවිතා වේ.
CRS විසින් පින්තූරයේ අවකාශීය යොමු පද්ධතිය පිළිබඳ තොරතුරු ලබා දෙයි, අපට රූප ඛණ්ඩාංක සැබෑ ලෝකයේ ස්ථාන වලට ගැලපීමට ඉඩ සලසයි.
අවසාන වශයෙන්, අපි රූපයේ ඇති කලාප ගණන ගණනය කිරීම සඳහා සැටලයිට්_ඉමේජ් වස්තුවේ ගණන් කිරීමේ ගුණාංගය භාවිතා කරමු. මෙම දත්ත පසුකාලීන විශ්ලේෂණය සඳහා ඉතා වැදගත් වන්නේ එය පින්තූර අරාවේ එක් එක් කලාපය සඳහා පික්සල් අගයන් ලබා ගැනීමට අපට ඉඩ සලසන බැවිනි.
3. බෑන්ඩ් සංඛ්යා ලේඛන ගණනය කිරීම
අපි මෙම කොටසෙහි පින්තූර අරාවේ එක් එක් සංගීත කණ්ඩායම සඳහා සංඛ්යා ලේඛන ගණනය කරමු. එක් එක් කලාපය හරහා පුඩුවක් පුනරාවර්තනය වන අතර, මෙම සංඛ්යාලේඛන ගණනය කිරීම සඳහා numpy පුස්තකාලයේ min, max, mean, සහ std ශ්රිත භාවිතා කෙරේ.
ශබ්දකෝෂ ලැයිස්තුවක් එක් එක් සංගීත කණ්ඩායම සඳහා සංඛ්යාලේඛන ගබඩා කරයි.
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)
කලාප දර්ශකය නියෝජනය කරන විචල්ය කලාපය සමඟින්, එක් එක් කලාපය හරහා ලූප චක්රය. image_array[band] භාවිතා කරමින්, අපි එක් එක් කලාපය සඳහා රූප අරාවෙන් පික්සල් අගයන් උපුටා ගනිමු.
ඉන්පසුව, වත්මන් කලාපය සඳහා, පික්සලයේ අවම, උපරිම, මධ්යන්ය සහ සම්මත අපගමනය තීරණය කිරීමට np.min(), np.max(), np.mean(), සහ np.std() ශ්රිතයන් භාවිතා වේ. අගයන්.
එක් එක් සංගීත කණ්ඩායම සඳහා ගණනය කළ දත්ත ශබ්දකෝෂයක ගබඩා කර ඇත්තේ 'බෑන්ඩ්,' 'මිනි,' 'මැක්ස්,' 'මධ්යන්,' සහ 'ශා. සෑම ශබ්ද කෝෂයක්ම සංගීත කණ්ඩායම් සංඛ්යාලේඛන ලැයිස්තුවට එකතු කර ඇත. අවසාන වශයෙන්, එක් එක් සංගීත කණ්ඩායමේ දත්ත කොන්සෝලය වෙත මුද්රණය කරනු ලැබේ.
4. NDVI (සාමාන්ය වෙනස් වෘක්ෂලතා දර්ශකය) ගණනය කිරීම
NDVI යනු ශාකවල සෞඛ්යය මැනීම සඳහා ජනප්රිය පියවරකි. මෙම කොටසේදී, පින්තූරයේ 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.")
ආරම්භ කිරීමට, අපි red_band සහ nir_band විචල්යයන් None ලෙස සකසමු. රූපයේ අවම වශයෙන් කලාප හතරක්වත් තිබේද යන්න තීරණය කිරීමට image_count විචල්යය භාවිතා කරයි.
එසේ නම්, අපි රතු පටිය දර්ශකය 2 සහ ආසන්න අධෝරක්ත (NIR) කලාපය දර්ශකය 3 ලෙස අනුමාන කරමු. පින්තූර අරාවෙන් ගැලපෙන පටි red_band සහ nir_band යන විචල්යයන් වෙත පවරා ඇත.
රතු සහ NIR කලාප දෙකටම ප්රවේශ විය හැකි නම්, NDVI ගණනය කරනු ලබන්නේ (NIR - Red) / (NIR + Red) සූත්රය භාවිතා කරමිනි. ප්රතිඵලයක් ලෙස ලැබෙන NDVI සංඛ්යා මගින් පින්තූරයේ එක් එක් පික්සලය සඳහා වෘක්ෂලතා දර්ශකය දක්වයි.
අපි පසුව NDVI දකින්නේ නව රූපයක් සාදා imshow() භාවිතා කර NDVI අරාව පෙන්වීමෙනි. වර්ණ තීරුව() ක්රමය කුමන්ත්රණයට වර්ණ තීරුවක් එක් කරයි, NDVI අගයන්ට දෘශ්ය යොමුවක් ලබා දෙයි.
NDVI සංදර්ශකය වෙත සම්පූර්ණයෙන්ම අවධානය යොමු කිරීමට, අපි කුමන්ත්රණය සඳහා ශීර්ෂ පාඨයක් සඳහන් කර අක්ෂය ('off') සහිත අක්ෂ ලේබල ඉවත් කරන්නෙමු. අවසාන වශයෙන්, කුමන්ත්රණය plt.show() සමඟ පෙන්වනු ලැබේ.
පින්තූරයේ NDVI ගණනය කිරීම සඳහා අවශ්ය කලාප නොමැති නම් (එනම්, කලාප හතරකට වඩා අඩු) දෝෂ පණිවිඩයක් කොන්සෝලය වෙත ලියා ඇත.
5. චන්ද්රිකා රූපය සමීපයට ගෙන ඒම
විශ්ලේෂණය සහ බැලීමෙන් පසු චන්ද්රිකා පින්තූර ගොනුව වසා දැමීම සඳහා සමීප() ශ්රිතය භාවිතා කිරීම වඩාත් සුදුසුය. මෙය පින්තූර ගොනුවට සම්බන්ධ ඕනෑම පද්ධති සම්පත් නිදහස් කරයි.
satellite_image.close()
මෙන්න මගේ විසඳුම:
ඒක තමයි!
අවසන් සටහන්
චන්ද්රිකා ඡායාරූප ලබා ගැනීමේ හැකියාව සහ විභේදනය වැඩි වන විට මෙම දැවැන්ත දත්ත කට්ටල අධ්යයනයට උපකාර කිරීමේදී පයිතන් ගේ භූමිකාව වඩ වඩාත් වැදගත් වෙමින් පවතී.
චන්ද්රිකා ඡායාරූප වෙත ප්රවේශ වීමට, සැකසීමට, විශ්ලේෂණය කිරීමට සහ පෙන්වීමට Python භාවිතා කිරීමේ හැකියාව නිර්මාණාත්මක යෙදුම් සඳහා මාර්ගයක් සහ අපගේ ලෝකය පිළිබඳ හොඳ වෙනසක් සහ වැඩි දැනුමක් ඇති කිරීමට හේතු විය හැක.
Python භාවිතයෙන් චන්ද්රිකා ඡායාරූප විශ්ලේෂණයේ ඔබේ වික්රමය දිගටම කරගෙන යන විට ඔබේ දැනුම සහ හැකියාවන් වැඩි කර ගැනීම සඳහා පවතින විශාල සම්පත්, නිබන්ධන සහ පුස්තකාල ගවේෂණය කිරීමට මතක තබා ගන්න.
චන්ද්රිකා පින්තූර තුළ තැන්පත් වී ඇති අභිරහස් අනාවරණය කර ගැනීමට Python ගේ හැකියාවන් දිගටම උනන්දුවෙන්, ගවේෂණය කරන්න, සහ භාවිතා කරන්න.
ඔබමයි