પર્યાવરણીય દેખરેખ, કૃષિ, શહેરી આયોજન, આપત્તિ વ્યવસ્થાપન અને આબોહવા પરિવર્તન અભ્યાસો બધાને ઉપગ્રહ છબી વિશ્લેષણથી ફાયદો થયો છે.
પૃથ્વી-નિરીક્ષક ઉપગ્રહો દ્વારા રેકોર્ડ કરાયેલા મોટા પ્રમાણમાં ડેટાનો ઉપયોગ કરીને આપણે આપણા ગ્રહની લાક્ષણિકતાઓ, ફેરફારો અને ગતિશીલતામાં નોંધપાત્ર આંતરદૃષ્ટિ મેળવી શકીએ છીએ.
પાયથોન, એક બહુમુખી અને મજબૂત પ્રોગ્રામિંગ ભાષા, ઝડપી અને અસરકારક ઉપગ્રહ છબી પ્રક્રિયા માટે પુસ્તકાલયો અને સાધનોની સમૃદ્ધ ઇકોસિસ્ટમ પ્રદાન કરે છે.
નો ઉપયોગ ઉપગ્રહ છબી વિશ્લેષણ શક્યતાઓનું વિશ્વ ખોલે છે. તે અમને સેટેલાઇટ ફોટાઓમાંથી ઉપયોગી માહિતી મેળવવા માટે સક્ષમ બનાવે છે, જેમ કે જમીન કવર વર્ગીકરણ, વનસ્પતિ આરોગ્ય મૂલ્યાંકન, શહેરી વિસ્તરણને ટ્રેકિંગ, અને શોરલાઇન મેપિંગ.
અમે પાયથોનની વર્સેટિલિટી અને મોડ્યુલો જેમ કે રેસ્ટેરિયો, નમ્પી અને મેટપ્લોટલિબનો ઉપયોગ કરીને સેટેલાઇટ ઇમેજને સરળતાથી પ્રોસેસ, ડિસ્પ્લે અને વિશ્લેષણ કરી શકીએ છીએ.
સેટેલાઇટ ઇમેજરી પૃથ્થકરણ માટે પાયથોનનો ઉપયોગ કરવાના પ્રાથમિક ફાયદાઓમાંનો એક તેના જીઓસ્પેશિયલ ડેટા પ્રોસેસિંગ મોડ્યુલોની વ્યાપક શ્રેણી છે.
Rasterio, ઉદાહરણ તરીકે, રાસ્ટર માહિતી વાંચવા અને સંશોધિત કરવા માટે એક સરળ ઈન્ટરફેસ ધરાવે છે, જે તેને સેટેલાઇટ ઈમેજરી ફાઈલો સાથે કામ કરવા માટે યોગ્ય બનાવે છે.
નમ્પી મોડ્યુલ ચિત્ર ડેટા પર ઝડપી ગણતરીઓ અને આંકડાઓ કરવા માટે અત્યાધુનિક એરે ઓપરેશન્સ પ્રદાન કરે છે. Matplotlib અમને વિશ્લેષણાત્મક પરિણામોના અર્થઘટન અને સંચારમાં મદદ કરવા માટે સંબંધિત વિઝ્યુઅલ જનરેટ કરવામાં પણ સક્ષમ બનાવે છે.
નીચેના વિભાગોમાં, અમે સેટેલાઇટ ફોટાનું પૃથ્થકરણ કરવા માટે પાયથોનનો ઉપયોગ કેવી રીતે કરી શકાય તે બતાવવા માટે વાસ્તવિક ઉદાહરણો અને કોડ સ્નિપેટ્સ જોઈશું.
અમે સેટેલાઇટ ફોટા કેવી રીતે ખોલવા, ઇમેજિંગ ડેટાને વિઝ્યુઅલાઈઝ કરવા, મેટાડેટા કાઢવા, બેન્ડના આંકડાઓની ગણતરી કરવા અને નોર્મલાઈઝ્ડ ડિફરન્સ વેજીટેશન ઈન્ડેક્સ (NDVI) જેવા ચોક્કસ વિશ્લેષણ કેવી રીતે ચલાવવું તે વિશે જઈશું.
આ ઉદાહરણો તમને પાયથોન સાથે સેટેલાઇટ ઇમેજ વિશ્લેષણના રસપ્રદ વિષયમાં પ્રારંભ કરવામાં મદદ કરશે.
પ્રથમ, અમને અમારા કાર્યમાં મદદ કરવા માટે કેટલીક લાઇબ્રેરીઓ આયાત કરવાની જરૂર છે.
import rasterio
import matplotlib.pyplot as plt
import numpy as np
1. સેટેલાઈટ ઈમેજનું વિઝ્યુઅલાઈઝીંગ અને ઓપનીંગ
સેટેલાઇટ_ઇમેજ_પાથ દ્વારા પૂરી પાડવામાં આવેલ સેટેલાઇટ ઇમેજને ઍક્સેસ કરવા માટે અમે આ વિભાગમાં રાસ્ટેરિયો લાઇબ્રેરી કરીશું.
ઇમેજ ફાઇલ 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. બેન્ડ સ્ટેટિસ્ટિક્સ ગણતરી
અમે આ ભાગમાં ચિત્ર એરેમાં દરેક બેન્ડ માટે આંકડાઓની ગણતરી કરીએ છીએ. દરેક બેન્ડમાં એક લૂપ પુનરાવર્તિત થાય છે, અને આ આંકડાઓની ગણતરી કરવા માટે નમ્પી લાઇબ્રેરીના ન્યૂનતમ, મહત્તમ, સરેરાશ અને એસટીડી ફંક્શનનો ઉપયોગ કરવામાં આવે છે.
શબ્દકોશોની સૂચિ દરેક બેન્ડ માટે આંકડા સંગ્રહિત કરે છે.
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 નંબરો જે પરિણામ આપે છે તે ચિત્રમાં દરેક પિક્સેલ માટે વનસ્પતિ સૂચકાંક સૂચવે છે.
અમે પછી એક નવી આકૃતિ બનાવીને અને imshow() નો ઉપયોગ કરીને NDVI એરે પ્રદર્શિત કરીને NDVI જોઈએ છીએ. colorbar() પદ્ધતિ પ્લોટમાં કલરબાર ઉમેરે છે, જે NDVI મૂલ્યોને વિઝ્યુઅલ સંદર્ભ આપે છે.
NDVI ડિસ્પ્લે પર સંપૂર્ણ ધ્યાન કેન્દ્રિત કરવા માટે, અમે પ્લોટ માટે કૅપ્શનનો પણ ઉલ્લેખ કરીએ છીએ અને axis('off') સાથે અક્ષના લેબલ્સ દૂર કરીએ છીએ. છેલ્લે, પ્લોટ plt.show() સાથે બતાવવામાં આવે છે.
જો ચિત્રમાં NDVI ગણતરી (એટલે કે, ચાર બેન્ડ કરતા ઓછા) માટે જરૂરી બેન્ડનો અભાવ હોય તો કન્સોલ પર એક ભૂલ સંદેશ લખવામાં આવે છે.
5. સેટેલાઈટ ઈમેજને બંધ કરવા
વિશ્લેષણ અને જોયા પછી સેટેલાઇટ પિક્ચર ફાઇલને બંધ કરવા માટે Close() ફંક્શનનો ઉપયોગ કરવો શ્રેષ્ઠ પ્રેક્ટિસ છે. આ ચિત્ર ફાઇલ સાથે લિંક થયેલ કોઈપણ સિસ્ટમ સંસાધનોને મુક્ત કરે છે.
satellite_image.close()
અહીં મારો ઉકેલો છે:
બસ આ જ!
અંતિમ નોંધો
આ વિશાળ ડેટાસેટ્સના અભ્યાસમાં મદદ કરવામાં પાયથોનની ભૂમિકા વધુને વધુ મહત્વપૂર્ણ બની રહી છે કારણ કે ઉપગ્રહ છબીઓની ઉપલબ્ધતા અને રિઝોલ્યુશન વધે છે.
ઉપગ્રહ છબીઓને ઍક્સેસ કરવા, પ્રક્રિયા કરવા, વિશ્લેષણ કરવા અને બતાવવા માટે પાયથોનનો ઉપયોગ કરવાની ક્ષમતા સર્જનાત્મક એપ્લિકેશનો અને આંતરદૃષ્ટિ માટેનો માર્ગ પ્રદાન કરે છે જે સારા પરિવર્તન અને આપણા વિશ્વનું વધુ જ્ઞાન લાવી શકે છે.
પાયથોનનો ઉપયોગ કરીને સેટેલાઇટ ઇમેજરી વિશ્લેષણમાં તમે તમારા સાહસને ચાલુ રાખતા તમારા જ્ઞાન અને ક્ષમતાઓને વધારવા માટે ઉપલબ્ધ સંસાધનો, ટ્યુટોરિયલ્સ અને લાઇબ્રેરીઓની વિશાળ પસંદગીનું અન્વેષણ કરવાનું યાદ રાખો.
સેટેલાઇટ ચિત્રોની અંદર દફનાવવામાં આવેલા રહસ્યોને ઉજાગર કરવા માટે પાયથોનની ક્ષમતાઓને રુચિ, અન્વેષણ અને ઉપયોગ કરવાનું ચાલુ રાખો.
એક જવાબ છોડો