首页 > 其他分享 >使用IDL进行氚羽流监测(三)——绘制含水层相对流速

使用IDL进行氚羽流监测(三)——绘制含水层相对流速

时间:2024-01-10 10:16:45浏览次数:18  
标签:COLOR ASCII IDL 羽流 流速 csv 数据 含水层

本文我们将介绍描述研究区的另一个特征:研究区域含水层的相对流速。本例使用 GRIDDATA 和 CONTOUR 生成基础地形图,并在其上绘制含水层流速的 矢量图。

将地形数据网格化

使用文件 " TankDataTerrain.csv "中的数据(可参阅 "对研究区域和环境进行建模"一文),绘制地形等高线图,作为流向矢量的底图。

首先读入基础数据。数据位于 IDL 安装目录下的(examples/data)目录中的 TankDataTerrain.csv 文件中。该文件包含储罐或储井点的地表地形数据,以 X、Y、Z 坐标表示(单位均为米)。该文件的第四列数据包含下层含水层的海拔高度。

在本例中,我们使用ASCII_TEMPLATE创建一个模板,需指定数据从第二行开始,并在第3步中为FIELD1~4设置属性名称为X、Y、Z和AQ。然后使用READ_ASCII读入数据。

; 创建基本模板并手动指定 X、Y、Z和 AQ 作为变量名。

; 确保数据从第 2 行开始

; (第 1 行为列标题)。

myTemplate = ASCII_TEMPLATE(FILEPATH('TankDataTerrain.csv', $

  SUBDIRECTORY=['examples', 'data']))

site = READ_ASCII(FILEPATH('TankDataTerrain.csv', $

  SUBDIRECTORY=['examples', 'data']),TEMPLATE=myTemplate)

; 使用克里金法对数据进行网格化

; (将维度设置为 1000以符合研究区域的大小)。

; 如果愿意,可以选择其他网格方法。

grid = GRIDDATA(site.X, site.Y, site.Z, $

   DIMENSION=1000, METHOD="Kriging")

创建基础等高线图

接下来绘制等高线底图。

; 创建一个颜色表变量。使用REVERSE关键字

; 使用 #74号颜色表作为 COLORTABLE 函数的关键字

; 反转颜色,使用较深的颜色在地形较低的地区。

myCT = COLORTABLE(74, /REVERSE)




; 设置索引变量来保存轮廓级别。

; 从网格数据创建等高线图。

index = [420,430,440,450,460,470,480,490,500,510, $

   520,530,540,550,560,570,580]

myContour = CONTOUR(grid, RGB_TABLE=myCT, $

   C_VALUE=index, ASPECT_RATIO=.75, /FILL, $

   TITLE="储井位置区域地形", $

   XTITLE="Meters (x10)", YTITLE="Meters (x10)" ,$

      font_name = 'Microsoft Yahei')

myContour2 = CONTOUR(grid, COLOR='black', $

   C_VALUE=index, ASPECT_RATIO=.75, /OVERPLOT)




; 更改标题的字体大小。

myContour.TITLE.FONT_SIZE = 14

; 设置储井位置的变量。

; 井位置以同一坐标给出

; 与初始地形的 (x, y) 坐标系相同。

xLoc = [66,276,566,471,484]

yLoc = [210,221,146,483,313]

zLoc = [490,483,470,480,475]

i_tritium = [7, 9, 0, 5, 4]

labels = ['A-401','A-402','A-403','A-404','A-405']

; 绘制氚的相对初始浓度

; pCi/L x 10e6 使用 BUBBLEPLOT 函数。

tritium = BUBBLEPLOT(xLoc, yLoc, MAGNITUDE=i_tritium, $

   EXPONENT=0.75, /OVERPLOT, LABELS=labels,$

   LABEL_FONT_SIZE=8, LABEL_ALIGNMENT=0.0, $

   COLOR='chocolate', LABEL_POSITION='right')

; 使用 SCATTERPLOT 绘制每个气泡的中心点。

myPlot = SCATTERPLOT(xLoc, yLoc, /OVERPLOT, SYMBOL='*', $

   SYM_SIZE=1, SYM_FILLED=1, SYM_THICK=2, SYM_FILL_COLOR='black')

; 在图的右下角添加注释

; 使用数据坐标。

areaText = TEXT(600, 50, TARGET=myPlot, $

   '*气泡大小与初始氚浓度成正比。', $

   /DATA, COLOR='black', FONT_SIZE=8, FONT_STYLE='italic' , $

      font_name = 'Microsoft Yahei')

读取流量数据并将其网格化

现在我们已经完成了等高线底图,接下来读取含水层流量数据并在当前窗口中创建流向矢量图。

注:河流的流速要比含水层的流速大几个数量级。因此,数据集中只包括河流流量的方向数据。

; 创建模板并手动指定U、V、AX 和 AY作为变量名。

; 确保数据从第 2 行开始

; (第 1 行为列标题)。

myTemplateAQ = ASCII_TEMPLATE(FILEPATH('GWFlowRates.csv', $

  SUBDIRECTORY=['examples', 'data']))




; 读入数据。

gwFlow = READ_ASCII(FILEPATH('GWFlowRates.csv', $

  SUBDIRECTORY=['examples', 'data']), TEMPLATE=myTemplateAQ)




; 在当前 CONTOUR 图形上创建 VECTOR 图形。

; 单独的 RGB_TABLE,然后隐藏坐标轴。

; 注意必须将 AUTO_COLOR 设置为 1,这样矢量图才会根据 RGB_TABLE 指定颜色。

myVectors = VECTOR(gwFlow.U, gwFlow.V, gwFlow.AX, gwFlow.AY, $

   XRANGE=[0,9], YRANGE=[0,10], rgb_table = 34, /CURRENT, $

   AUTO_COLOR=1, background_transparency=100)

ax = myVectors.AXES

ax[0].HIDE= 1 ; 隐藏底部X轴

ax[1].HIDE= 1 ; 隐藏左侧Y轴




; 添加颜色条。

cb = COLORBAR(TARGET=myVectors, POSITION=[0.10,0.065,0.3,0.085], $

   TITLE='相对流速 (m/day)', FONT_SIZE=8, $

      font_name = 'Microsoft Yahei')

标签:COLOR,ASCII,IDL,羽流,流速,csv,数据,含水层
From: https://www.cnblogs.com/enviidl/p/17955891

相关文章

  • 基于Aidlux平台的智能版面分析
    版面分析是将文档图像进行文档对象识别并判断各区域所属类别,如配图、表格、公式、分栏等,并对不同类型的区域进行切分、识别。后面的工作是实现包括组卷、以题搜题、文档电子化存储、结构化解析等功能。版面分析的背景介绍:目标:图像版面分析任务拆解:PDF转Word:本实战采用CDLA数据集(A......
  • 解释cmd命令 idle test.py
    在Windows的命令行(CMD)中,idletest.py是一个用来打开并编辑名为test.py的Python文件的命令¹。这里的idle是Python自带的集成开发环境(IntegratedDevelopmentandLearningEnvironment)的简称¹。当你在命令行中输入idletest.py并按下回车键,系统会使用IDLE打开test......
  • QGridLayout使用
    一、概述使用QGridLayout制作一个九宫格,如下图: 二、代码示例#include"GridLayoutExampleWindow.h"GridLayoutExampleWindow::GridLayoutExampleWindow(QWidget*parent):QWidget(parent){this->setWindowTitle("网格布局");this->setFixedSize(......
  • Oracle12c新增max_idle_time参数的学习与感触
    Oracle12c新增max_idle_time参数的学习与感触TLDR其实任何软件出了新版本.readme是很重要的.尤其是数据库,涉及到底层问题的.比如这次遇到的Oracle的max_idle_time参数,以及前几天遇到的Mysql的新增的parallel关键字.自己之前的积累可能是一盏明灯,也可能是一堵墙.......
  • 使用IDL进行氚羽流监测(一)——对研究区和环境进行建模
    本系列环境监测示例探讨了IDL帮助您表征环境条件、执行分析和创建可视化的方法。在本例中,我们将查看一个模拟核废料处置场的周围环境。核反应堆的废料氚被堆积在靠近一条主要河流的地下储罐和储水井中。这些储罐或储水井随后发生泄露,现在一股受氚污染的水流正穿过沉积物流向河......
  • 基于AidLux的工业视觉少样本缺陷检测实战
    1.引言工业视觉缺陷检测系统是一种利用计算机视觉技术,通过分析生产过程中的图像和视频数据,来检测工业产品是否存在缺陷或质量问题的系统。有幸参加Aidlux的11月份的训练营<<工业视觉少样本缺陷检测实战>>,在这个过程中我收获到了很多之前没有接触到的算法和实践。本次课程利用Unet......
  • IdleHandler的使用及原理
    IdleHandler的使用及原理-简书(jianshu.com) IdleHandler方式就是利用其特性,只有CPU空闲的时候才会执行相关任务,并且我们可以分批进行任务初始化,可以有效缓解界面的卡顿。简单用法代码如下:Looper.myQueue().addIdleHandler(object:MessageQueue.IdleHandler{......
  • 基于Aidlux平台的工业视觉少样本缺陷检测
    工业视觉缺陷检测的工作流程常用异常检测算法面临的挑战及发展图像分割的数据标注数据标注准确的重要性:1. 训练模型的基础2. 提高模型性能3. 降低误判和误诊分险4. 减少资源浪费自动标注SAM的使用模型切换模型部署#-*-coding:UTF-8-*-importaidlite_gpuimportcv2impor......
  • 基于Aidlux平台的工业视觉少样本缺陷检测
    工业视觉缺陷检测的工作流程 常用异常检测算法面临的挑战及发展图像分割的数据标注 数据标注准确的重要性:训练模型的基础提高模型性能降低误判和误诊分险减少资源浪费自动标注SAM   模型切换模型部署#-*-coding:UTF-8-*-importaidlite_gpu......
  • 使用Aidlux进行工业视觉少样本缺陷检测的实战应用
     Aidlux是一个强大的工具,可以帮助我们进行深度学习模型的开发和部署。在这个视频中,我们将会看到如何下载和安装Aidlux,如何使用VSCode远程连接到Aidlux,如何在Aidlux商店中安装Python3.9和OpenCV-Python,以及如何进行模型转换和上传。首先,我们需要下载和安装Aidlux。这个过程非......