DEM و منحصر کردن شبکه جریان با پایتون و Pyshed - آموزش :: بیسین - سایت تخصصی مهندسی آب

ابزار وبمستر

Bootstrap Example

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

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

DEM و منحصر کردن شبکه جریان با پایتون و Pyshed - آموزش


مقدمه

در دوران مدرن، الگوریتم های کامپیوتری می توانند ویژگی های هیدرولوژیکی را از ساخت توپوگرافی تفسیر کنند. پس از تعریف یک حوضه زهکشی، تمام آب هایی که در یک منطقه قرار می گیرند، باید در یک خروجی مشترک با گرانش به عنوان تنها نیروی محرکه تخلیه شوند. برای یک توپوگرافی حوضه ای "هیدرولوژیکی"، تمام شبکه های زهکشی باید مسیر نزولی را به نقطه تخلیه داشته باشند، بنابراین هر سینک یا depressions "مسیر" روبروی سطح را متوقف می کند و کامپیوتر از شبکه رودخانه عبور نخواهد کرد.

مدل های ارتفاعی دیجیتال (DEMs) از تفسیر ماهواره ای (Aster DEM یا Alos Palsar) با "اشتباه" از اشتباهات در تفسیر ارتفاع، رزیست رادیکال و یا بازتولید می شوند. نیاز به اصلاح این رسترها برای تفسیر ویژگی های هیدرولوژیکی وجود دارد. این آموزش فرایند را نشان می دهد که یک مدل ارتفاع دیجیتالی (DEM) را از یک سرور NASA / USGS با کتابخانه Pysheds پایتون بارگیری می کند. آموزش بر روی یک نوت بوک Jupyter انجام شد، فایل های ورودی و اسکریپت ها در بخش نهایی پست قرار می گیرند.


Pysheds

ویژگی های جدید در Pysheds برای حوضه و توزیع شبکه جریان وجود دارد. تا تاریخ این پست (22-01-2019)، آخرین نسخه Pysheds اجازه استفاده از مدل های ارتفاعی دیجیتال را در مختصات جغرافیایی (WGS84) و مختصات پیش بینی شده (WGS 84 UTM) می دهد. این قابلیت تطبیق تجزیه و تحلیل هیدرولوژیکی را افزایش می دهد.


دو مجموعه دستورات Pyshed برای این آموزش برای تهیه DEM مورد استفاده قرار گرفتند:


تشخیص و پر کردن depressions

تشخیص و حل و فصل flats


به طور معمول، تشخیص depressions در بازرسی بصری آسان نیست زیرا آنها در تعداد کمی از سلول ها قرار دارند. هنگامی که Pysheds آنها را پر کرد، باید بخش های مسطح را روی DEM اصلاح شده حل کند.


ELEVATION REPRESENTATION WITH STREAM NETWORK


DEPRESSIONS ON THE DEM (RED PIXELS)


FLAT PARTS AFTER THE DEPRESSION FILL



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


دانلود کد پایتون

دانلود داده های ورودی


Python code

This is the python code for this tutorial:


#Import required libraries

import numpy as np

import matplotlib.pyplot as plt

import matplotlib.colors as colors

import geopandas as gpd

from pysheds.grid import Grid

import mplleaflet

%matplotlib inline

#Open a digital elevation model 

grid = Grid.from_raster('../Rst/20190109125130_1063922483.tif', data_name='dem')

#Define a function to plot the digital elevation model 

def plotFigure(data, label, cmap='Blues'):

    plt.figure(figsize=(12,10))

    plt.imshow(data, extent=grid.extent)

    plt.colorbar(label=label)

    plt.grid()

#Minnor slicing on borders to enhance colobars

elevDem=grid.dem[:-1,:-1]

plotFigure(elevDem, 'Elevation (m)')

# Detect depressions


# Detect depressions

depressions = grid.detect_depressions('dem')


# Plot depressions

plt.imshow(depressions)

# Fill depressions

grid.fill_depressions(data='dem', out_name='flooded_dem')

# Test result

depressions = grid.detect_depressions('flooded_dem')

plt.imshow(depressions)

# Detect flats

flats = grid.detect_flats('flooded_dem')


# Plot flats

plt.imshow(flats)

grid.resolve_flats(data='flooded_dem', out_name='inflated_dem')

plt.imshow(grid.inflated_dem[:-1,:-1])

# Create a flow direction grid

#N    NE    E    SE    S    SW    W    NW

dirmap = (64,  128,  1,   2,    4,   8,    16,  32)

grid.flowdir(data='inflated_dem', out_name='dir', dirmap=dirmap)

plotFigure(grid.dir,'Flow Direction','viridis')

# Specify discharge point

x, y = -107.91663,27.83479

# Delineate the catchment

grid.catchment(data='dir', x=x, y=y, dirmap=dirmap, out_name='catch',

               recursionlimit=15000, xytype='label', nodata_out=0)

# Clip the bounding box to the catchment

grid.clip_to('catch')

# Get a view of the catchment

demView = grid.view('dem', nodata=np.nan)

plotFigure(demView,'Elevation')

#export selected raster

grid.to_raster(demView, '../Output/clippedElevations_WGS84.tif')

# Define the stream network


grid.accumulation(data='catch', dirmap=dirmap, pad_inplace=False, out_name='acc')


accView = grid.view('acc', nodata=np.nan)

plotFigure(accView,"Cell Number",'PuRd')

streams = grid.extract_river_network('catch', 'acc', threshold=200, dirmap=dirmap)

streams["features"][:2]

def saveDict(dic,file):

    f = open(file,'w')

    f.write(str(dic))

    f.close()

#save geojson as separate file

saveDict(streams,'../Output/streams_WGS84.geojson')

# Some functions to plot the json on jupyter notebook

streamNet = gpd.read_file('../Output/streams_WGS84.geojson')

streamNet.crs = {'init' :'epsg:4326'}

# The polygonize argument defaults to the grid mask when no arguments are supplied

shapes = grid.polygonize()


# Plot catchment boundaries

fig, ax = plt.subplots(figsize=(6.5, 6.5))


for shape in shapes:

    coords = np.asarray(shape[0]['coordinates'][0])

    ax.plot(coords[:,0], coords[:,1], color='cyan')


ax.set_xlim(grid.bbox[0], grid.bbox[2])

ax.set_ylim(grid.bbox[1], grid.bbox[3])

ax.set_title('Catchment boundary (vector)')

gpd.plotting.plot_dataframe(streamNet, None, cmap='Blues', ax=ax)

#ax = streamNet.plot()

mplleaflet.display(fig=ax.figure, crs=streamNet.crs, tiles='esri_aerial')

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

نشاني ايميل (فعال): 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