前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >用 Wolfram 语言映射美国的山火

用 Wolfram 语言映射美国的山火

作者头像
WolframChina
发布2020-10-10 11:40:36
3850
发布2020-10-10 11:40:36
举报
文章被收录于专栏:WOLFRAM

野火最近已在美国多个州蔓延。加利福尼亚州遭受着历史上最大规模的野火之苦。俄勒冈州有20处大火,覆盖面积超过40万英亩。甚至华盛顿今年也不能幸免。

为了得到当前野火在哪里的感觉,我生成了一个调用的函数 WildfireData 其源数据来自美国宇航局的MODIS仪器登上了Terra和Aqua两颗卫星(代码包括在文章的结尾):https://modis.gsfc.nasa.gov/

这 WildfireData 函数可以通过以下全局 ResourceFunction URI进行访问:

代码语言:javascript
复制
WildfireData=ResourceFunction["user:arnoudb/DeployedResources/Function/WildfireData"]

现在,我们可以立即使用此函数从NASA获取当前可用的野火数据:

代码语言:javascript
复制
data=WildfireData[]

输出是具有几列的数据集。第一列包含野火观测的地理位置,第二列包含其亮度:

我们可以从在地图上绘制所有位置开始:

代码语言:javascript
复制
GeoGraphics[{Red,Point[data[All,"Location"]]}]

输出显示观察到的野火:

在此缩放级别上,南方似乎有很多野火,但是我们可以放大,例如密西西比州,以近距离观察:

代码语言:javascript
复制
ms=Entity["AdministrativeDivision",{"Mississippi","UnitedStates"}];
代码语言:javascript
复制
GeoGraphics[{Blue,Polygon[ms],Red,Point[data[All,"Location"]]},GeoRange->ms]

近距离来看,这些野火非常分散且独立:

我们可以将密西西比州和俄勒冈州进行比较,以了解两者之间的区别:

代码语言:javascript
复制
or=Entity["AdministrativeDivision",{"Oregon","UnitedStates"}];
代码语言:javascript
复制
GeoGraphics[{Blue,Polygon[or],Red,Point[data[All,"Location"]]},GeoRange->or]

俄勒冈州的野火数量更多:

我们可以放大任何区域,例如,洛杉矶市中心40英里以内的区域:

代码语言:javascript
复制
la=Entity["City",{"LosAngeles","California","UnitedStates"}];
代码语言:javascript
复制
GeoGraphics[{Red,Point[data[All,"Location"]]},GeoRange->GeoDisk[la,Quantity[40,"Miles"]]]

圣盖博山上有许多野火:

这些野火被称为山猫火(Twitter上的#bobcatfire):

在俄勒冈州塞勒姆以东还有大火:

代码语言:javascript
复制
area=Entity["City",{"Salem","Oregon","UnitedStates"}]
代码语言:javascript
复制
GeoGraphics[{Red,Point[data[All,"Location"]]},GeoRange->GeoDisk[area,Quantity[60,"Miles"]]]

这显示了一大堆野火:

不幸的是,西部的野火季节预计要到11月才能结束。到目前为止,仅在加利福尼亚州,就有超过300万英亩的土地被烧毁,估计成本为8亿美元。俄勒冈州损失了60万英亩,华盛顿损失了500,000英亩。

WildfireData 函数的代码:

代码语言:javascript
复制
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]]
    ]
  ]
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-09-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 WOLFRAM 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档