用 Wolfram 语言映射美国的山火
时间:2022-07-26
本文章向大家介绍用 Wolfram 语言映射美国的山火,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
野火最近已在美国多个州蔓延。加利福尼亚州遭受着历史上最大规模的野火之苦。俄勒冈州有20处大火,覆盖面积超过40万英亩。甚至华盛顿今年也不能幸免。
为了得到当前野火在哪里的感觉,我生成了一个调用的函数 WildfireData 其源数据来自美国宇航局的MODIS仪器登上了Terra和Aqua两颗卫星(代码包括在文章的结尾):https://modis.gsfc.nasa.gov/
这 WildfireData 函数可以通过以下全局 ResourceFunction URI进行访问:
WildfireData=ResourceFunction["user:arnoudb/DeployedResources/Function/WildfireData"]
现在,我们可以立即使用此函数从NASA获取当前可用的野火数据:
data=WildfireData[]
输出是具有几列的数据集。第一列包含野火观测的地理位置,第二列包含其亮度:
我们可以从在地图上绘制所有位置开始:
GeoGraphics[{Red,Point[data[All,"Location"]]}]
输出显示观察到的野火:
在此缩放级别上,南方似乎有很多野火,但是我们可以放大,例如密西西比州,以近距离观察:
ms=Entity["AdministrativeDivision",{"Mississippi","UnitedStates"}];
GeoGraphics[{Blue,Polygon[ms],Red,Point[data[All,"Location"]]},GeoRange->ms]
近距离来看,这些野火非常分散且独立:
我们可以将密西西比州和俄勒冈州进行比较,以了解两者之间的区别:
or=Entity["AdministrativeDivision",{"Oregon","UnitedStates"}];
GeoGraphics[{Blue,Polygon[or],Red,Point[data[All,"Location"]]},GeoRange->or]
俄勒冈州的野火数量更多:
我们可以放大任何区域,例如,洛杉矶市中心40英里以内的区域:
la=Entity["City",{"LosAngeles","California","UnitedStates"}];
GeoGraphics[{Red,Point[data[All,"Location"]]},GeoRange->GeoDisk[la,Quantity[40,"Miles"]]]
圣盖博山上有许多野火:
这些野火被称为山猫火(Twitter上的#bobcatfire):
在俄勒冈州塞勒姆以东还有大火:
area=Entity["City",{"Salem","Oregon","UnitedStates"}]
GeoGraphics[{Red,Point[data[All,"Location"]]},GeoRange->GeoDisk[area,Quantity[60,"Miles"]]]
这显示了一大堆野火:
不幸的是,西部的野火季节预计要到11月才能结束。到目前为止,仅在加利福尼亚州,就有超过300万英亩的土地被烧毁,估计成本为8亿美元。俄勒冈州损失了60万英亩,华盛顿损失了500,000英亩。
WildfireData 函数的代码:
WildfireData[] := Module[{base, csv1, csv2, csv, ds},
base = "https://firms.modaps.eosdis.nasa.gov/data/active_fire/c6/
csv/"; csv1 =
Once[Import[
URLBuild[{base, "MODIS_C6_USA_contiguous_and_Hawaii_24h.csv"}]]];
csv2 = Once[Import[URLBuild[{base, "MODIS_C6_Alaska_24h.csv"}]]];
csv = If[Length[csv2] > 1, Join[csv1, csv2], csv1];
ds = Dataset[Map[
<|
"Location" -> GeoPosition[{First[#], #[[2]]}],
"Brightness" -> #[[3]],
"Scan" -> #[[4]],
"Track" -> #[[5]],
"AcquisitionDate" ->
DateObject[{#[[6]] <> " " <>
IntegerString[#[[7]], 10, 4], {"Year", "-", "Month", "-",
"Day", " ", "Hour", "Minute"}}],
"Satellite" -> #[[8]],
"ConfidenceFraction" -> #[[9]]/100.,
"Version" -> #[[10]],
"BrightnessT31" -> #[[11]],
"FRP" -> #[[12]],
"DayNight" -> #[[13]]|> &, Rest[csv]]
]
]
- 【设计模式】—— 观察者模式Observer
- 【设计模式】—— 备忘录模式Memento
- 【设计模式】—— 中介者模式Mediator
- 【设计模式】—— 迭代模式Iterator
- 【设计模式】—— 解释器模式Interpret
- 【设计模式】—— 命令模式Commond
- 【设计模式】—— 职责链模式ChainOfResponsibility
- 【设计模式】—— 代理模式Proxy
- 【设计模式】—— 享元模式Flyweight
- 【设计模式】—— 外观模式Facade
- 【设计模式】—— 装饰模式Decorator
- 【设计模式】—— 组合模式Composite
- 【设计模式】—— 桥接模式Bridge
- 【插件开发】—— 1 Eclipse插件开发导盲
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 迷宫问题的简单栈实现
- xmuC语言程序实践week 3 大作业
- xmuC语言程序实践week 4 大作业
- R语言预测人口死亡率:用李·卡特(Lee-Carter)模型、非线性模型进行平滑估计
- 前端的发展历程
- R语言蒙特卡洛计算和快速傅立叶变换计算矩生成函数
- Visual Studio 中万能头文件编译不了的解决方案
- Difference in two ways of using lower_bound [C++]std::set::lower_bound与std::lower_bound
- 迷你版Vue--学习如何造一个Vue轮子
- 如何用R语言绘制生成正态分布图表
- hdu 5143 NPY and arithmetic progression(暴力+思维)
- 正则表达式之简易markdown文件解析器
- 2015.CCF计算机软件能力认证试题第二题
- Codeforces Round #547 (Div. 3)A. Game 23
- Codeforces Round #547 (Div. 3)C. Polycarp Restores Permutation