آموزش محاسبه NDVI از تصاویر Landsat8 با پایتون 3 و Rasterio :: بیسین - سایت تخصصی مهندسی آب

ابزار وبمستر

Bootstrap Example

عضويت در خبرنامه ايـميـل پايگاه بيسيــن - عضويت پس از کليک بر روي لينک فعال سازي که براي شما ارسال خواهد شد تکميل مي شود

پشتيباني شده با بيسين

آموزش محاسبه NDVI از تصاویر Landsat8 با پایتون 3 و Rasterio


NDVI یک شاخص گیاهی است که به طور گسترده ای برای ارزیابی اثرات زیست محیطی، ارزیابی کشاورزی و معیارهای تغییر کاربری زمین مورد استفاده قرار می گیرد. روش محاسبه NDVI در نرم افزارهای سیستم اطلاعات جغرافیایی (GIS) به عنوان QGIS ساده و مستقیم است. با این حال، کارایی تنها مربوط به یک تصویر است، اما اگر یک سری از تصاویر را تجزیه و تحلیل کنیم یا اگر تصاویری با منابع محاسباتی محدود داشته باشیم، ما باید برخی از فیلترهای سفارشی و پیش پردازش را به مجموعه داده ها اعمال نماییم، سپس ما باید روش های دیگری را برای محاسبه NDVI در یک روش سریع تر و کارآمدتر با توجه به منابع محاسباتی در دسترس بررسی کنیم.


تصاویر ماهواره ای georasters هستند، این تصاویر یک آرایه منظم از ستون ها و ردیف ها (یک ماتریس در هر باند) است. پایتون زبان برنامه نویسی و تجزیه و تحلیل داده ها برای جبر ماتریس با کتابخانه Numpy بسیار متنوع است، اما هیچ روش ایده آل و ساده برای پردازش georaster تا زمان توسعه بسته Rasterio وجود ندارد.


Rasterio یک کتابخانه برای باز کردن، نوشتن، بررسی و تجزیه و تحلیل georasters در پایتون است. این کتابخانه از تصاویر GeoTIFF همراه با فرمت های دیگر استفاده می کند و قادر به کار با تصاویر ماهواره ای، مدل های ارتفاعی دیجیتال و تصاویر تولید شده از هواپیماهای بدون سرنشین است.


این آموزش روش کامل برای تجزیه و تحلیل NDVI از یک تصویر Landsat 8 با پایتون 3 و Rasterio را نشان می دهد. اسکریپت و نمایندگی بر روی یک محیط تعاملی به نام Jupyter Notebook انجام شد، در نهایت نتیجه georaster در QGIS باز شد و در مقایسه با برخی از تصاویر پس زمینه بدست آمد.


داده های ورودی

شما می توانید داده های ورودی و اسکریپت های مورد استفاده برای آموزش در این لینک را دانلود کنید.


کد پایتون (دانلود این کد):


#import required libraries

import rasterio

from rasterio import plot

import matplotlib.pyplot as plt

import numpy as np

%matplotlib inline

import os

os.listdir('../Landsat8/')

#import bands as separate 1 band raster

band4 = rasterio.open('../Landsat8/LC08_L1TP_042035_20180603_20180615_01_T1_B4_clip.tif') #red

band5 = rasterio.open('../Landsat8/LC08_L1TP_042035_20180603_20180615_01_T1_B5_clip.tif') #nir

#number of raster rows

band4.height

#number of raster columns

band4.width

#plot band 

plot.show(band4)

#type of raster byte

band4.dtypes[0]

#raster sytem of reference

band4.crs

#raster transform parameters

band4.transform

#raster values as matrix array

band4.read(1)

#multiple band representation

fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(12, 6))

plot.show(band4, ax=ax1, cmap='Blues') #red

plot.show(band5, ax=ax2, cmap='Blues') #nir

fig.tight_layout()

#generate nir and red objects as arrays in float64 format

red = band4.read(1).astype('float64')

nir = band5.read(1).astype('float64')


nir

#ndvi calculation, empty cells or nodata cells are reported as 0

ndvi=np.where(

    (nir+red)==0., 

    0, 

    (nir-red)/(nir+red))

ndvi[:5,:5]

#export ndvi image

ndviImage = rasterio.open('../Output/ndviImage.tiff','w',driver='Gtiff',

                          width=band4.width, 

                          height = band4.height, 

                          count=1, crs=band4.crs, 

                          transform=band4.transform, 

                          dtype='float64')

ndviImage.write(ndvi,1)

ndviImage.close()

#plot ndvi

ndvi = rasterio.open('../Output/ndviImage.tiff')

fig = plt.figure(figsize=(18,12))

plot.show(ndvi)


مدیر سایت: بهزاد سرهادی

نشاني ايميل (فعال): www.Basin.ir@Gmail.com

شناسه تلگرام مدير سايت: SubBasin@

تلفن تماس:  09190622992 (98+)

(سوالات تخصصي را در گروه تلگرام ارسال کنيد)

_______________________________________________________

×

راهنماي حل مشکل دانلود: با توجه به مسدود شدن درايو گوگل در ايران از آي پي ديگر کشورها براي دانلود فايل ها استفاده کنيد.

براي مشاهده راهنماي دانلود فايل هاي پايگاه بيسيــن همينجا کليک کنيد





سفارش پروژه داريد؟ يا قصد همکاري در انجام پروژه؟ و يا قصد فروش فايل خود؟

با فشردن دکمه زير يکي از بخش هاي "سفارش انجام پروژه" يا "همکاري با بيسين" و يا "فروش فايل" را انتخاب فرماييد







آمار آنلاين-مقايسه اي بارش در حوضه هاي اصلي کشور

منبع: وزارت نيرو - اين نمودار ممکن است براي دقايقي به دليل بروزرساني غير فعال شود


آخرين تصوير ماهواره هواشناسي - موقعيت ايران

W3Schools

________________________________________________________________________________

____________________________________________________

_____________________________

W3Schools

نظرات  (۰)

فرم ارسال نظر

ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">

درباره بهترين هاي بيسيـــن بدانيد...

Bird

يکي از مهمترين اهداف اين سايت تهيه آموزش هاي روان از ابزارهاي کاربردي علوم آب است.

اهميت مطالعات محيطي با ابزارهاي نوين در چيست؟

امروز با فارغ التحصيلي جمع کثير دانشجويان سالهاي گذشته و حال، با گذر از کمي گرايي ديگر صرف وجود مدارک دانشگاهي حرف اول را در بازار کار نمي زند؛ بلکه سنجش ديگري ملاک؛ و شايسته سالاري به ناچار! باب خواهد شد. يکي از مهم ترين لوازم توسعه علمي در هر کشور و ارائه موضوعات ابتکاري، بهره گيري از ابزار نوين است، بيسين با همکاري مخاطبان مي تواند در حيطه علوم آب به معرفي اين مهم بپردازد.

جستجو در بيسين


ابزارهاي نوين

بیسین - سایت تخصصی مهندسی آب

بیسین جهت ارائه مطالب و خدمات تخصصی در حیطه نرم افزارها و مدل های شبیه سازی مهندسی آب با رویکرد پژوهشی-آموزشی ایجاد شده است که توسعه خود را در گرو همکاری مخاطبان می بیند.

اطلاعات سايت

  • www.Basin.ir@gmail.com
  • بهزاد سرهادي
  • تاريخ امروز:
  • شناسه تلگرام: SubBasin
  • شماره تماس: 09190622992-098