莫里航海图 最早的大数据实践

2023-11-22 13:00

本文主要是介绍莫里航海图 最早的大数据实践,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

马修·方丹·莫里(Matthew Fontaine Maury)是一位很有前途的美国海军军官。1839年,在他前往双桅船“合奏号”(Consort)接受一个新任务时,他乘坐的马车突然滑出了车道,瞬间倾倒,把他抛到了空中。他重重地摔到了地上,大腿骨粉碎性骨折,膝盖也脱臼了。当地的医生帮他复位了膝盖关节,但大腿受伤过重,几天后还需要重新手术。直到33岁,他的伤才基本痊愈,但是受伤的腿却留下了残疾,变得有点儿跛,再也无法在海上工作。经过近三年的休养,美国海军把他安排进了办公室,并任命他为图表和仪器厂的负责人。

马修·方丹·莫里(Matthew Fontaine Maury)

谁也想不到,这里竟成了他的福地。作为一位年轻的航海家,莫里曾经对船只在水上绕弯儿不走直线而感到十分不解。当他向船长们问及这个问题时,他们回答说,走熟悉的路线比冒险走一条不熟悉而且可能充满危险的路线要好得多。他们认为,海洋是一个不可预知的世界,人随时都可能被意想不到的风浪困住。

但是从他的航行经验来看,莫里知道这并不完全正确。他经历过各种各样的风暴。一次,他听到来自智利瓦尔帕莱索扩展港口的预警,亲眼目睹了当时刮成圆形的风就像钟表一样;但在下午晚些或日落的时候,大风突然结束,静下来变成一阵微风,仿佛有人关了风的开关一样。在另一次远航中,他穿过墨西哥蓝色海域的暖流,感觉就像在大西洋黑黢黢的水墙之间穿行,又好像在密西西比河静止不动的河面上挺进。

当莫里还是一个海军军官学校的学生时,他每次到达一个新的港口,总会向老船长学习经验知识,这些经验知识是代代相传下来的。他从这些老船长那里学到了潮汐、风和洋流的知识,这些都是在军队发的书籍和地图中无法学到的。相反,海军依赖于陈旧的图表,有的都使用了上百年,其中的大部分还有很重大的遗漏和离谱的错误。在他新上任为图表和仪器厂负责人时,他的目标就是解决这些问题。

他清点了库房里的气压计、指南针、六分仪和天文钟。他发现,库房里存放着许多航海书籍、地图和图表;还有塞满了旧日志的发霉木箱,这些都是以前的海军舰长写的航海日志。他的前任们都觉得这些是垃圾,但当他拍掉被海水浸泡过的书籍上的灰尘,凝视着里面的内容时,莫里突然变得非常激动。

这里有他所需要的信息,例如对特定日期、特定地点的风、水和天气情况的记录。大部分信息都非常有价值。莫里意识到,如果把它们整理到一起,将有可能呈现出一张全新的航海图。这些日志是无章可循的;页面边上尽是奇怪的打油诗和乱七八糟的信手涂鸦,与其说它们是对航海行程的记录,还不如说它们是船员在航海途中无聊的娱乐而已。尽管如此,仍然可以从中提取出有用的数据。莫里和他的20台“计算机”——那些进行数据处理的人,一起把这些破损的航海日志里记录的信息绘制成了表格,这是一项非常繁重的工作。 

莫里整合了数据之后,把整个大西洋按经纬度划分成了五块,并按月份标出了温度、风速和风向,因为根据时间的不同这些数据也有所不同。整合之后,这些数据显示出了有价值的模式,也提供了更有效的航海路线。

这些数据显示出了有价值的模式,也提供了更有效的航海路线

有经验的海员有时依靠经验能安全航海,但有时也会陷入危险之中。在从纽约到里约热内卢这条繁忙的航线上,水手们往往倾向于与自然斗争而不是顺应自然。美国船长一直被劝导前往里约热内卢不能通过海峡,因为那样存在很大风险,所以船长会选择在东南方向的航线上航行,再穿过赤道驶向西南方向。而这样一来,船只必须两度穿越大西洋,距离甚至相当于横穿了三次。这是很荒谬的,其实直接向南航行就可以了。

通过分析这些数据,莫里知道了一些良好的天然航线,这些航线上的风向和洋流都非常利于航行。他所绘制的图表帮助商人们节省了一大笔钱,因为航海路程减少了三分之一左右。一个船长感激地说:“我在得到你的图表之前都是在盲目地航行,你的图表真的指引了我。”有一些顽固的人拒绝使用这个新制的图表,而当他们因为使用旧方法航行到半路出了事故或者花费的航行时间长很多的时候,他们反而帮助证明了莫里系统的实用性。

1855年,莫里的权威著作《关于海洋的物理地理学》(The Physical Geography of the Sea)出版,当时他已经绘制了120万数据点了。莫里写道,在这些图表的帮助下,年轻的海员们不用再亲自去探索和总结经验,而能够通过这些图表立即得到来自成千上万名经验丰富的航海家的指导。

他的工作为第一根跨大西洋电报电缆的铺设奠定了基础。同时,在公海上发生了一次灾难性的碰撞事件之后,他马上修改了他的航线分析系统,这个修改后的系统一直沿用至今。他的方法甚至应用到了天文学领域,1846年当海王星被发现的时候,莫里有了一个好点子,那就是把错把海王星当成一颗恒星时的数据都汇集起来,这样就可以画出海王星的运行轨迹了。

这个土生土长的弗吉尼亚人在美国历史上并不受关注,这也许是因为他在美国内战期间不再为海军效力,而是摇身一变成为了美国联邦政府在英国的间谍。但是多年前,当他前去到欧洲为他绘制的图表寻求国际支持的时候,四个国家授予了他爵士爵位,包括梵蒂冈在内的其他八个国家还颁给了他金牌。即使到今天,美国海军颁布的导航图上仍然有他的名字。

原文发布时间为:2014年05月16日
本文作者:大数据时代
本文来自云栖社区合作伙伴至顶网,了解相关信息可以关注至顶网。

这篇关于莫里航海图 最早的大数据实践的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/410329

相关文章

批量导入txt数据到的redis过程

《批量导入txt数据到的redis过程》用户通过将Redis命令逐行写入txt文件,利用管道模式运行客户端,成功执行批量删除以Product*匹配的Key操作,提高了数据清理效率... 目录批量导入txt数据到Redisjs把redis命令按一条 一行写到txt中管道命令运行redis客户端成功了批量删除k

Spring Boot集成/输出/日志级别控制/持久化开发实践

《SpringBoot集成/输出/日志级别控制/持久化开发实践》SpringBoot默认集成Logback,支持灵活日志级别配置(INFO/DEBUG等),输出包含时间戳、级别、类名等信息,并可通过... 目录一、日志概述1.1、Spring Boot日志简介1.2、日志框架与默认配置1.3、日志的核心作用

破茧 JDBC:MyBatis 在 Spring Boot 中的轻量实践指南

《破茧JDBC:MyBatis在SpringBoot中的轻量实践指南》MyBatis是持久层框架,简化JDBC开发,通过接口+XML/注解实现数据访问,动态代理生成实现类,支持增删改查及参数... 目录一、什么是 MyBATis二、 MyBatis 入门2.1、创建项目2.2、配置数据库连接字符串2.3、入

SpringBoot多环境配置数据读取方式

《SpringBoot多环境配置数据读取方式》SpringBoot通过环境隔离机制,支持properties/yaml/yml多格式配置,结合@Value、Environment和@Configura... 目录一、多环境配置的核心思路二、3种配置文件格式详解2.1 properties格式(传统格式)1.

解决pandas无法读取csv文件数据的问题

《解决pandas无法读取csv文件数据的问题》本文讲述作者用Pandas读取CSV文件时因参数设置不当导致数据错位,通过调整delimiter和on_bad_lines参数最终解决问题,并强调正确参... 目录一、前言二、问题复现1. 问题2. 通过 on_bad_lines=‘warn’ 跳过异常数据3

Android Paging 分页加载库使用实践

《AndroidPaging分页加载库使用实践》AndroidPaging库是Jetpack组件的一部分,它提供了一套完整的解决方案来处理大型数据集的分页加载,本文将深入探讨Paging库... 目录前言一、Paging 库概述二、Paging 3 核心组件1. PagingSource2. Pager3.

在Java中使用OpenCV实践

《在Java中使用OpenCV实践》用户分享了在Java项目中集成OpenCV4.10.0的实践经验,涵盖库简介、Windows安装、依赖配置及灰度图测试,强调其在图像处理领域的多功能性,并计划后续探... 目录前言一 、OpenCV1.简介2.下载与安装3.目录说明二、在Java项目中使用三 、测试1.测

MyBatis-Plus 自动赋值实体字段最佳实践指南

《MyBatis-Plus自动赋值实体字段最佳实践指南》MyBatis-Plus通过@TableField注解与填充策略,实现时间戳、用户信息、逻辑删除等字段的自动填充,减少手动赋值,提升开发效率与... 目录1. MyBATis-Plus 自动赋值概述1.1 适用场景1.2 自动填充的原理1.3 填充策略

C#监听txt文档获取新数据方式

《C#监听txt文档获取新数据方式》文章介绍通过监听txt文件获取最新数据,并实现开机自启动、禁用窗口关闭按钮、阻止Ctrl+C中断及防止程序退出等功能,代码整合于主函数中,供参考学习... 目录前言一、监听txt文档增加数据二、其他功能1. 设置开机自启动2. 禁止控制台窗口关闭按钮3. 阻止Ctrl +

java如何实现高并发场景下三级缓存的数据一致性

《java如何实现高并发场景下三级缓存的数据一致性》这篇文章主要为大家详细介绍了java如何实现高并发场景下三级缓存的数据一致性,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 下面代码是一个使用Java和Redisson实现的三级缓存服务,主要功能包括:1.缓存结构:本地缓存:使