/Ocean_Data_Visual

An application to visualize ocean data and communicate with fellows

Primary LanguageC#

Ocean_Tracer 海的追溯人——海洋参数以及效应可视化平台

同济大学 OceanTracer小组

项目设计目标与意义

本项目旨在为专业科研员提供海洋物理参数(目前主要是海表温度)的可视化以初步数据处理,同时能够向大众科普海洋效应(目前主要是厄尔尼诺效应),在数据直观展示和趣味答题闯关的功能下,增进大众对海洋效应的认识.

项目关键技术

  • 开发采用C/S模式,使用了MongoDB与Sql Server两种数据库
  • 使用C#.NET制作系统的操作界面
  • 调用了百度地图JavaScript API对查询所需的经纬度信息进行可视化获取
  • 调用了Matlab动态链接库对数据进行处理以及可视化
  • 采用了Cef Sharp谷歌浏览器,以支持HTML5的显示
  • 采用了Python爬虫技术爬取Nino区Nino指数数据
  • 开发过程中使用了Github团队项目,提高效率

项目特色

  • MongoDB与SQL Server结合:依据数据特点的不同采用MongoDB和Sql Server两种数据库
    • 海洋参数数据数据量大、且数据间关联性弱,采用Nosql的MongoDB进行存储;
    • 用户和科普数据数据量相对较小,且数据间有很强的关联性,采用Sql Server存储
  • 专业程度高:我们调用了Matlab对数据进行数据处理以及可视化,符合专业实际需要,包括:
    • NetCDF格式文件的处理
    • 时间序列的分析预测、频谱图绘制
    • 经纬剖面的时间连续性绘制等
  • 面向群体广泛:项目不仅为专业研究人员提供了海洋参数的数据处理及可视化,并且向大众提供了海温与厄尔尼诺效应的科普,以图文和数据作支撑,使得科普更加直观,改变厄尔尼诺效应在公众中“只知其名”的现状
  • 查询直观便捷:采用手动输入和百度地图Java Script API 方法进行查询经纬度信息的确定,用户可以在地图上直接进行经纬度点选或经纬度范围框选
  • 数据可视化丰富:调用Matlab进行数据的可视化,包括折线图、频谱图、热力图等图件,不仅形式丰富,也满足了专业要求
  • 用户友好性:用户可以查看科普学习知识,也可以通过闯关答题对已学知识进行检验巩固。同时为用户提供社区交流,如若有任何问题,都可在社区中发帖询问,等待其他用户和管理员的回答
  • 管理员友好性:提供了多种数据处理方式,管理员可以对数据进行单一、批量的处理,根据需求对处理方式进行选择。对于每月更新的Nino数据可以通过Python进行数据获取与更新

项目开发环境

  • Windows 10
  • Visual Studio 2019
  • MATLAB 2019a 、 MATLAB 2018a
  • Python 3.7
  • SQL Server 2012