Байгаль орчны хяналт, хөдөө аж ахуй, хот төлөвлөлт, гамшгийн менежмент, уур амьсгалын өөрчлөлтийн судалгаа зэрэг нь хиймэл дагуулаас авсан зургийн дүн шинжилгээ хийх үр өгөөжөө өгсөн.
Бид дэлхийг ажиглагч хиймэл дагуулын тэмдэглэсэн асар их хэмжээний өгөгдлийг ашигласнаар манай гаригийн шинж чанар, өөрчлөлт, динамикийн талаар чухал ойлголтыг олж авах боломжтой.
Python, олон талт, хүчирхэг програмчлалын хэл нь сансрын зургийг хурдан бөгөөд үр дүнтэй боловсруулахад зориулсан баялаг экосистем, сангууд болон хэрэгслүүдийг санал болгодог.
ашиглах хиймэл дагуулын зургийн шинжилгээ боломжуудын ертөнцийг нээж өгдөг. Энэ нь сансрын гэрэл зургаас газрын бүрхэвчийг ангилах, ургамлын эрүүл мэндийн үнэлгээ, хот суурин газрын тэлэлтийг хянах, эрэг орчмын зураглал гэх мэт хэрэгтэй мэдээллийг гаргаж авах боломжийг бидэнд олгодог.
Бид Python-ийн олон талт байдал, rasterio, numpy, matplotlib зэрэг модулиудыг ашиглан хиймэл дагуулын зургийг хялбархан боловсруулж, үзүүлж, дүн шинжилгээ хийх боломжтой.
Хиймэл дагуулын зургийн шинжилгээнд Python-ийг ашиглахын гол давуу талуудын нэг нь түүний өргөн хүрээний газарзүйн мэдээлэл боловсруулах модулиуд юм.
Жишээлбэл, Rasterio нь растер мэдээллийг унших, өөрчлөх энгийн интерфейстэй тул сансрын зургийн файлуудтай ажиллахад тохиромжтой.
numpy модуль нь зургийн өгөгдөл дээр хурдан тооцоолол, статистикийг гүйцэтгэх нарийн төвөгтэй массиваар хангадаг. Matplotlib нь мөн аналитик үр дүнг тайлбарлах, дамжуулахад туслах холбогдох дүрслэлийг бий болгох боломжийг бидэнд олгодог.
Дараах хэсгүүдэд бид Python-ийг хиймэл дагуулын гэрэл зургийг шинжлэхэд хэрхэн ашиглаж болохыг харуулахын тулд бодит жишээнүүд болон кодын хэсгүүдийг авч үзэх болно.
Бид хиймэл дагуулын зургийг хэрхэн нээх, дүрслэлийн өгөгдлийг дүрслэх, мета өгөгдлийг задлах, зурвасын статистикийг тооцоолох, Ургамлын хэвийн ялгааны индекс (NDVI) гэх мэт тодорхой дүн шинжилгээ хийх талаар авч үзэх болно.
Эдгээр жишээнүүд нь Python ашиглан хиймэл дагуулын зургийн анализ хийх сонирхолтой сэдвийг эхлүүлэхэд тусална.
Нэгдүгээрт, бид даалгавраа хийхэд туслах зарим номын санг импортлох хэрэгтэй.
import rasterio
import matplotlib.pyplot as plt
import numpy as np
1. Хиймэл дагуулын зургийг дүрслэн харуулах, нээх
Бид энэ хэсэгт 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() функцийг ашиглан массив болгон уншдаг. Хиймэл дагуулын зургийн зурвас тус бүрийн пикселийн утгууд нь зургийн массивт хадгалагддаг.
# Read the image as an array
image_array = satellite_image.read()
Хиймэл дагуулын зургийг нүдээр үнэлэхийн тулд бид matplotlib.pyplot хэрэглүүрийг ашиглан 10×10 инчийн дүрсийг гаргадаг.
Зургийн массивыг imshow() аргыг ашиглан харуулав. Transpose(1, 2, 0) үйлдэл нь зургийн массивын хэмжээсийг imshow()-ын хүлээгдэж буй дарааллаар тохируулахад хэрэглэгддэг.
Эцэст нь, 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 нь зургийн орон зайн лавлагааны системийн мэдээллийг өгч, зургийн координатыг бодит ертөнцтэй тааруулах боломжийг бидэнд олгодог.
Эцэст нь бид хиймэл дагуулын_зургийн объектын count шинж чанарыг ашиглан зурган дээрх зурвасын тоог тооцоолно. Энэ өгөгдөл нь зургийн массив дахь зурвас бүрийн пикселийн утгыг олж авах боломжийг олгодог тул дараа нь дүн шинжилгээ хийхэд маш чухал юм.
3. Хамтлагийн статистикийн тооцоо
Бид энэ хэсгийн зургийн массив дахь хамтлаг тус бүрийн статистикийг тооцдог. Давтамж тус бүр дээр давтагдах ба numpy номын сангийн min, max, дундаж, 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() функцуудыг ашиглан пикселийн хамгийн бага, дээд, дундаж, стандарт хазайлтыг тодорхойлно. үнэт зүйлс.
Хамтлаг бүрийн тооцоолсон өгөгдлийг "Band", "Min", "Max", "Mean", "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 - Улаан) / (NIR + Улаан) томъёог ашиглан тооцоолно. Үүссэн NDVI тоонууд нь зураг дээрх пиксел бүрийн ургамлын индексийг заана.
Дараа нь бид шинэ дүрс үүсгэж, imshow() ашиглан NDVI массивыг харуулах замаар NDVI-г харна. Colorbar() арга нь зураглалд өнгөт мөр нэмж, NDVI утгуудыг харааны лавлагаа болгож өгдөг.
NDVI дэлгэц дээр бүхэлд нь анхаарлаа төвлөрүүлэхийн тулд бид графикийн тайлбарыг нэмж зааж өгч, тэнхлэгийн шошгыг тэнхлэгтэй('off') хасдаг. Эцэст нь зураглалыг plt.show()-оор харуулав.
Хэрэв зурагт NDVI тооцоололд шаардлагатай зурвас байхгүй (өөрөөр хэлбэл дөрвөөс бага зурвас) байхгүй бол алдааны мессежийг консол дээр бичнэ.
5. Хиймэл дагуулын зургийг ойртуулах
Шинжилгээ хийж, үзсэний дараа хиймэл дагуулын зургийн файлыг хаахын тулд close() функцийг ашиглах нь хамгийн сайн арга юм. Энэ нь зургийн файлтай холбоотой аливаа системийн нөөцийг чөлөөлнө.
satellite_image.close()
Миний шийдэл энд байна:
Тиймээ!
Эцсийн тэмдэглэл
Хиймэл дагуулын зургийн хүртээмж, нягтрал нэмэгдэхийн хэрээр эдгээр их хэмжээний мэдээллийн багцыг судлахад туслах Python-ийн үүрэг улам бүр чухал болж байна.
Хиймэл дагуулын зургуудад хандах, боловсруулах, дүн шинжилгээ хийх, харуулахын тулд Python-ийг ашиглах чадвар нь бидний ертөнцийг сайн өөрчлөх, илүү их мэдлэгийг бий болгох бүтээлч хэрэглээ, ойлголтыг бий болгодог.
Python ашиглан хиймэл дагуулаас авсан зургийн дүн шинжилгээ хийх адал явдлаа үргэлжлүүлэхдээ мэдлэг, чадвараа нэмэгдүүлэх боломжтой нөөц, заавар, номын сангуудын өргөн сонголттой танилцахаа мартуузай.
Хиймэл дагуулын зургуудад нуугдаж буй нууцыг илрүүлэхийн тулд Python-ийн чадварыг үргэлжлүүлэн сонирхож, судалж, ашигла.
хариу үлдээх