InforShell
Trend View

NetCDF 数据读取和可视化软件
互动选择多重维与变量, 截取或抽样读取数据到电子表格


中国代理: 北京波拉萨特科技有限公司
恰购咨询请与: fx_polasate@163.com 或
电话号码: (8610) 68001089联系

有关技术咨询请与 support@inforshells.com


目录:

  • 概述
  • 加栽NetCDF动态插入功能库
  • 读取NetCDF文件控制对话板
  • 选定目标维和变量子集
  • 维控制 (全选,抽样,截取)
  • 指定图像数据在表格中的行列格式
  • 调整表格的行列数
  • 选择经纬度控制目标区域
  • 时间控制
  • NetCDF数据在表格中的格式
  • NetCDF遥感数据的三维可视化示例
  • NetCDF多层数据的四维可视化示例
  • NetCDF数据的三维插值填图可视化
  • 四维气象数据与三维地貌综合可视化


  • NetCDF读取和可视化
    概述

        由NetCDF生成的数据文件的扩展名为.nc. 该类文件用二进制码记录数据. 因.nc文件中记录有自身数据结构的描述, 所以通常不再额外提供具有可读性的数据结构说明. 简单的NetCDF文件可能是一维单变量或一维多变量, 复杂的文件则具有多维多变量的数据关系. 概略的讲, 其中:

    • 维可以是独立的或与其他维之间具有隶属关系或称父子关系
    • 在每一个维的属性中记录有
      • 该维的唯一标识号Dp
      • 该维的长度描述Rn, 即Rn定义了隶属变量所拥有的数据记录项数
    • 变量中存有与其所隶属的维的长度相符的数据记录项
    • 在每一个变量的属性中记录有
      • 该变量的唯一标识号Vq
      • 该变量所隶属的维的描述, 例如: 3维数组变量( D3, D7, D12 )
        基于NetCDF文件提供的数据关系自描述信息, TrendView 从V5.0 开始提供了一个读取"NetCDF文件控制"对话板. 通过与该对话板的互动, 用户可方便的选定将要读取的目标维和其隶属的变量. 然后用户可进一步通过 "维控制" 指定 "全选", "抽样" 或 "截取" 变量记录.
    NetCDF读取和可视化
    加栽 NetCDF 动态插入功能库

         在TrendView 被启动后, 当用户第一次打开读取NetCDF文件时


    图示 1. 打开NetCDF文件菜单

    TrendView 将:
    • 第一步弹出一打开对话板由用户指出 netcdf.dll 的文件路径并打开netcdf.dll. 从 TrendView V5.0 开始 netcdf.dll 将被保存在 TrendView.exe 所在的子目录下.
    • 第二步弹出另一打开对话板由用户指出目标文件 myfile.nc 路径并打开该文件.

    Trend View 中文版下载免费试用

    返回目录



    NetCDF读取和可视化
    读取NetCDF文件控制对话板

    • 在读取NetCDF文件控制对话板中提供有4个的下拉列表. 它们分别是 D1, D2, D3D4;
    • 从 D1 到 D4 具有依次遗传的维间父子关系. 例如, 在 D2 中列出的子维名均是隶属于 D1 列表中当前选定的目标维.

    • 同时对话板中还提供有4个变量选择列表. 它们分别是 V1( D1 ), V2( D1, D2 ), V3( D1, D2, D3 ) 和 V4( D1, D2, D3, D4 );
    • 维下拉列表与变量列表具遗传的父子关系. 例如, 在V3( D1, D2, D3 )中列出的变量名均是3维数组变量并隶属于D1, D2, D3 下拉列表中当前选定的目标维.


    图示 2. NetCDF读取控制对话板

    返回目录



    NetCDF读取和可视化
    选定目标维和变量子集

        当用户指定打开读取一目标NetCDF文件后, TrendView自动将文件中:
    • 独维: 不具备父子关系的维名
    • 根维: 没有父维仅具备隶属子维的维名
    填写在D1下拉列表中. 用户用鼠标可选定任一D1下拉表中的维名作为目标维. 随后, 隶属于该目标维的:
    • 子维集将自动填写在D2下拉列表中
    • 变量集将自动填写在V1选择列表中

        用户用鼠标右键配合"Ctrl"键可在 V1列表中选定多个变量作为将选读数据的目标变量子集.

        以D1操作为例, 用户可依次在D2, D3和D4中选定目标维和变量.


    图示 3: 选定目标维和变量子集对话

    返回目录



    NetCDF读取和可视化
    维控制(全选,抽样,截取)

        在被读取NetCDF文件中, 每一个维的属性中记录有该维的长度描述Rn. 该Rn定义了隶属变量所拥有的数据记录项数. 在程序读取数组变量时需使用Rp( 0 <= Rp < Rn )作为索引指定一目标数据项.

        在维控制栏的下拉列表中填写了用户在D1到D4中已选定的所有目标维. 用户可用鼠标在下拉列表中选择其中任一维并进一步为其指定"读取数据方式"的Rp控制, 例如:

    • 全选: 程序将读取( 0 <= Rp < Rn )全部数据项
    • 抽样: 用户需给出 Rp 抽样间距步长L. 程序将读取 (Rn / L) 个数据项
    • 截取: 用户需给出 Rp 的起始和终止编号. 程序将读取包括起始和终止编号在内的所有数据项. 当 起始编号 = 终止编号 时, 程序将读入起始编号指定的数据项.
        在对一目标维完成指定Rp控制后, 用户需用鼠标点击 "设置" 屏幕键将该Rp控制方式记录在程序中. 用户可逐一对所有目标维设置Rp控制. 读取数据方式的缺省设置为"全选".


    图示 4: 维控制对话

    返回目录



    NetCDF读取和可视化
    指定图像数据在表格中的行列格式

        当被读取NetCDF文件中记录的是图像数据时, 用户需在NetCDF文件控制对话板中宣称该文件是 "图像数据". 确定后NetCDF图像文件控制对话板将自动弹出. 用户需在该对话板中的:
    • 按列填表的下拉列表中用鼠标选择指定一目标维(作为X轴)
    • 按行填表的下拉列表中用鼠标选择指定一目标维(作为Y轴)


    图示 5: NetCDF图像文件控制对话板

    返回目录



    NetCDF读取和可视化
    调整表格中行列数

        TrendView 表格的 行数 x 列数 为一常数, 缺省设置为:
    • 行数=2000
    • 列数=370
    用户通过读取NetCDF文件控制对话板的维控制可以了解到将读入数据的行列数. 当表格缺省设置的行列数不适用时, 用户可宣称 "调整表格( 行, 列)数". 确定后控制表格行列数对话板将自动弹出. 当用户调整增加表格行数时, 列数将自动减少. 反之同理.


    图示 6: 控制表格行列数对话板

    返回目录



    NetCDF读取和可视化
    选择经纬度控制目标区域

        如用户仅需要将某一区域内的数据读入到表格中, 需首先在从V1列表中选变量时包括经纬度变量. 其后, 用户可宣称 "设定目标区域". 确定后设定目标区域对话板将自动弹出. 在对话板中预置的数据是当前NetCDF文件覆盖区域边界的经纬度. 用户可在对话板中输入自己需要的目标区域的边界经纬度数据.


    图示 7: 设定目标区域对话板

    返回目录



    NetCDF读取和可视化
    时间控制

        如用户仅需要将某一时间段内的数据读入到表格中, 需首先在从V1列表中选变量时包括时间变量. 其后, 用户可宣称 "设定目标时间". 确定后设定目标时间对话板将自动弹出.

        如用户在被读取NetCDF文件中选读了多于一个时间变量, 需首先在时间变量下拉列表中指定一目标时间变量. 该变量在当前NetCDF文件中的时间边界值将被自动填写在起始和截止项中. 其后, 用户可在对话板中输入自己需要的起始和截止时间.


    图示 8: 设定目标时间段对话板

    返回目录



    NetCDF读取和可视化
    NetCDF数据在表格中的格式

        NetCDF数据读入表格后, 表格的第一行中逐列依次填写了用户选读的各个变量名. 从第二行开始:
    • 按用户选读的各个维的序号由小到大依次填写
    • 将变量数据填写到对应的列中
    如维与维存在父子关系 (通常父子维的长度不等), 假设:
    • 父维拥有变量( 站名, 经度, 纬度 ), 长度为10
    • 子维拥有变量( 层高, 温度, 湿度 ), 长度为5
    则读入的每1条父维变量( 站名, 经度, 纬度 ) 将有5条子维变量( 层高, 温度, 湿度 ) 需共享该( 站名, 经度, 纬度 ) 属性. 为此, 程序将上述1条父维变量( 站名, 经度, 纬度 ) 按子维长度重复填写5行记录, 即在表格中合成共50条记录, 每1条记录均拥有6项数据:
    • 站名, 经度, 纬度, 层高, 温度, 湿度
    注: 如用户在上述子维中仅指定 "截取" 某一层数据, 生成的数表中将无任何冗裕数据.

    用户将上述表格数据存写为*.txt 文件后:

    • 记录的数据项间均用横向跳格符(\t) 分隔.
    • 与传统气象站数据文件格式类似, 第一条记录可作为文件头使用
    该文件格式可被方便的导入其它软件做近一步的插值填图处理.


    图示 9: NetCDF数据在 TrendView表格中的格式

    返回目录



    NetCDF读取和可视化
    NetCDF遥感数据的三维可视化示例

        在TrendView 表格中的NetCDF的遥感或图像数据可根据需要送入其它地图工具做插值填图. 在送入地图工具之前用户可直接调用TrendView "数据三维图"功能对数值实现三维图视化预览:


    图示 10: 遥感数据三维图效果

    返回目录



    NetCDF读取和可视化
    NetCDF多层数据的四维可视化示例


    在NetCDF多数气象或海洋数据中, 每一数据项均拥有经纬度属性. 在同一经纬度点还通常拥有不同层高的数据项. 为了解在该三维空间中的数据变化趋势, TrendView提供一多层数据的四维可视化功能. 用户需首先为数据宣称:

    • 经度为绘图的X坐标
    • 纬度为绘图的Y坐标
    • 层高为绘图的Z坐标
    在调用 "数据三维图" 后生成的数据3维可视化图中, 图元素球直径表达源项的数值大小以提供四维效果. 同时图元素球颜色表达层高属性.


    图示 11: 多层数据的4维可视化示例
    返回目录



    NetCDF读取和可视化
    NetCDF数据的三维插值填图可视化


    如果用户给出的是唯一高度层数据提取条件, 在表格中得到是 "等高层" 的某类数据. 将该等高层数据存为文件可进一步导入到eEarthSolutions的浏览器eEarth实现NetCDF数据插值并填图在DEM数据的三维可视化地貌图上.

    由于NetCDF数据的水平分辨率与DEM水平分辨率不相互匹配, 因此eEarth需对NetCDF数据按像素水平分辨率精度做细密, 平滑递变插值计算. 插值结果将被映射填图到DEM的三维地貌图面的每一像素点并以彩色网点显示. 用户在三维视窗中使用鼠标随动可读出任一像素点的NetCDF插值数据, 经纬度和海拔高度.

    插值计算对垂直海拔高度的控制: 程序按每一个像素拥有的海拔高度决定是否求算插值和填图.

    等高层数据插值填图三维段景效果示例:


    图示 12: 等高层(1500米)水平风速插值填图三维段景效果 (水平4km分辨率DEM)

    返回目录



    NetCDF读取和可视化
    四维气象数据与三维地貌综合可视化


    如果用户给出的是多层数据提取条件, 在表格中得到是 "多层" 的某类数据. 将该多层数据存为文件可进一步导入到eEarthSolutions的浏览器eEarth实现四维气象数据插值并填图在DEM数据的三维可视化地貌图上.

    为兼顾用户观察目标区域的三维地貌并同时掌握气象数据在该立方域中的分布趋势, InforShell创建一 "稀疏塔林"的四维可视化模式. 程序支持用户可调控插值位置密度. 图中, 每一个图元素的直径和彩色表达数值由小至大的趋势并提供彩色尺条解释.

    多层数据插值填图稀疏塔林式四维效果示例:


    图示 13: 多层(高0, 5000米)风向速插值填图四维段景效果 (水平4km分辨率DEM)

    返回目录


    InforShell 关注
    你的建议或评论: