वातावरणीय अनुगमन, कृषि, शहरी योजना, विपद् व्यवस्थापन, र जलवायु परिवर्तन अध्ययनहरू सबै उपग्रह इमेजरी विश्लेषणबाट लाभान्वित भएका छन्।
हामी हाम्रो ग्रहका विशेषताहरू, परिवर्तनहरू, र गतिशीलतामा महत्त्वपूर्ण अन्तर्दृष्टिहरू प्राप्त गर्न सक्छौं पृथ्वी-अवलोकन गर्ने उपग्रहहरू द्वारा रेकर्ड गरिएको डेटाको ठूलो मात्राको शोषण गरेर।
पाइथन, एक बहुमुखी र बलियो प्रोग्रामिङ भाषा, छिटो र प्रभावकारी उपग्रह इमेजरी प्रशोधनका लागि पुस्तकालयहरू र उपकरणहरूको समृद्ध इकोसिस्टम प्रदान गर्दछ।
को प्रयोग उपग्रह इमेजरी विश्लेषण सम्भावनाहरूको संसार खोल्छ। यसले हामीलाई भू-कभर वर्गीकरण, वनस्पति स्वास्थ्य मूल्याङ्कन, सहरी विस्तार ट्र्याकिङ, र किनारा नक्साजस्ता भूउपग्रह फोटोहरूबाट उपयोगी जानकारी निकाल्न सक्षम बनाउँछ।
हामी सजिलैसँग पाइथनको बहुमुखी प्रतिभा र मोड्युलहरू जस्तै rasterio, numpy, र matplotlib को उपयोग गरेर स्याटेलाइट छविहरू प्रशोधन, प्रदर्शन र विश्लेषण गर्न सक्छौं।
स्याटेलाइट इमेजरी विश्लेषणको लागि पाइथन प्रयोग गर्ने प्राथमिक फाइदाहरू मध्ये एक यसको भूस्थानिक डेटा प्रशोधन मोड्युलहरूको विस्तृत दायरा हो।
Rasterio, उदाहरण को लागी, रास्टर जानकारी पढ्न र परिमार्जन गर्न को लागी एक सरल इन्टरफेस छ, यसलाई उपग्रह इमेजरी फाइलहरु संग काम गर्न को लागी उपयुक्त बनाउँछ।
नम्पी मोड्युलले चित्र डेटामा द्रुत गणना र तथ्याङ्कहरू प्रदर्शन गर्नको लागि परिष्कृत एरे अपरेशनहरू प्रदान गर्दछ। Matplotlib ले हामीलाई विश्लेषणात्मक परिणामहरूको व्याख्या र सञ्चारमा मद्दत गर्न सान्दर्भिक भिजुअलहरू उत्पन्न गर्न सक्षम बनाउँछ।
निम्न खण्डहरूमा, हामी वास्तविक उदाहरणहरू र कोड स्निपेटहरू हेर्नेछौं कि कसरी Python उपग्रह फोटोहरू विश्लेषण गर्न प्रयोग गर्न सकिन्छ।
हामी कसरी स्याटेलाइट फोटोहरू खोल्ने, इमेजिङ डाटा कल्पना गर्ने, मेटाडेटा निकाल्ने, ब्यान्ड तथ्याङ्कहरू गणना गर्ने, र सामान्यीकृत भिन्नता वनस्पति सूचकांक (NDVI) जस्ता विशेष विश्लेषणहरू कसरी चलाउने भन्ने बारे जानेछौं।
यी उदाहरणहरूले तपाईंलाई पाइथनको साथ उपग्रह छवि विश्लेषणको चाखलाग्दो विषयमा सुरू गर्न मद्दत गर्नेछ।
पहिले, हामीले हाम्रो कार्यमा मद्दत गर्न केही पुस्तकालयहरू आयात गर्न आवश्यक छ।
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() प्रकार्य प्रयोग गरेर एरेको रूपमा पढ्छौं। स्याटेलाइट तस्बिरहरूको प्रत्येक ब्यान्डको पिक्सेल मान छवि एरेमा भण्डार गरिएको छ।
# Read the image as an array
image_array = satellite_image.read()
स्याटेलाइट तस्विरलाई दृश्यात्मक रूपमा मूल्याङ्कन गर्न, हामी 10×10-इन्च फिगर उत्पन्न गर्न matplotlib.pyplot उपकरण प्रयोग गर्छौं।
चित्र एरे imshow() विधि प्रयोग गरेर देखाइएको छ। ट्रान्सपोज (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 ले तस्विरको स्थानिय सन्दर्भ प्रणालीमा जानकारी दिन्छ, जसले हामीलाई वास्तविक संसारका स्थानहरूमा छवि समन्वयहरू मिलाउन अनुमति दिन्छ।
अन्तमा, हामी छविमा ब्यान्डहरूको संख्या गणना गर्न satellite_image वस्तुको गणना विशेषता प्रयोग गर्छौं। यो डेटा पछिको विश्लेषणको लागि महत्वपूर्ण छ किनभने यसले हामीलाई चित्र एरेमा प्रत्येक ब्यान्डको लागि पिक्सेल मानहरू प्राप्त गर्न अनुमति दिन्छ।
3. ब्यान्ड तथ्याङ्क गणना
हामी यस भागमा चित्र एरेमा प्रत्येक ब्यान्डको लागि तथ्याङ्क गणना गर्छौं। प्रत्येक ब्यान्डमा एउटा लूप दोहोरिन्छ, र numpy पुस्तकालयको न्यूनतम, अधिकतम, मतलब, र 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() प्रकार्यहरू पिक्सेलको न्यूनतम, अधिकतम, औसत, र मानक विचलन निर्धारण गर्न प्रयोग गरिन्छ। मानहरू।
प्रत्येक ब्यान्डको लागि गणना गरिएको डेटा 'ब्यान्ड,' 'न्यूनतम,' 'अधिकतम,' 'मीन,' र '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 डिस्प्लेमा पूर्ण रूपमा फोकस गर्न, हामी थप रूपमा कथानकको लागि क्याप्सन निर्दिष्ट गर्छौं र अक्ष ('अफ') को साथ अक्ष लेबलहरू हटाउँछौं। अन्तमा, प्लट plt.show() सँग देखाइएको छ।
यदि तस्वीरमा NDVI गणनाको लागि आवश्यक ब्यान्डहरू छैनन् भने कन्सोलमा त्रुटि सन्देश लेखिएको छ (जस्तै, चार ब्यान्ड भन्दा कम)।
5. स्याटेलाइट छविलाई नजिक ल्याउँदै
विश्लेषण र अवलोकन गरिसकेपछि उपग्रह चित्र फाइल बन्द गर्न क्लोज() प्रकार्य प्रयोग गर्ने उत्तम अभ्यास हो। यसले तस्विर फाइलमा लिङ्क गरिएको कुनै पनि प्रणाली स्रोतहरू मुक्त गर्दछ।
satellite_image.close()
यहाँ मेरो समाधान छ:
त्यो हो!
अन्तिम नोटहरू
उपग्रह छविहरूको उपलब्धता र रिजोल्युसन बढ्दै जाँदा यी ठूला डाटासेटहरूको अध्ययनमा पाइथनको भूमिका महत्त्वपूर्ण हुँदै गइरहेको छ।
पहुँच, प्रशोधन, विश्लेषण, र उपग्रह छविहरू देखाउन पाइथन प्रयोग गर्ने क्षमताले रचनात्मक अनुप्रयोगहरू र अन्तरदृष्टिहरूको लागि मार्ग प्रदान गर्दछ जसले राम्रो परिवर्तन र हाम्रो संसारको ठूलो ज्ञान ड्राइभ गर्न सक्छ।
पाइथन प्रयोग गरेर स्याटेलाइट इमेजरी विश्लेषणमा आफ्नो साहसिक कार्य जारी राख्दा आफ्नो ज्ञान र क्षमताहरू बढाउन उपलब्ध स्रोतहरू, ट्यूटोरियलहरू, र पुस्तकालयहरूको ठूलो चयन अन्वेषण गर्न सम्झनुहोस्।
चासो जारी राख्नुहोस्, अन्वेषण गर्नुहोस्, र पाइथनको क्षमताहरू प्रयोग गर्नुहोस् उपग्रह चित्रहरू भित्र गाडिएका रहस्यहरू उजागर गर्न।
जवाफ छाड्नुस्