Wolfram mathematica 北美地图

Wolfram mathematica 北美地图,wolfram-mathematica,mapping,visualization,gis,Wolfram Mathematica,Mapping,Visualization,Gis,如何在Mathematica中渲染这样的贴图?(例如,美国各州和加拿大省份的一个可单独着色?) 我尝试导入SVG路径并构建多边形(使用基于的方法),但它们看起来比链接的SVG中的曲线要差得多。内置数据库似乎没有针对美国各州和加拿大省份的形状:只有国家 谢谢 PS:其目的是能够为州/省数据制作choropleth地图(即根据与该州/省相关的一些数据为州/省上色)对现有地图图像进行一些图像处理怎么样?这只是一个原型工作流。在Mathematica中集成了Wolfram]Alpha和图像处理的数据,有

如何在Mathematica中渲染这样的贴图?(例如,美国各州和加拿大省份的一个可单独着色?)

我尝试导入SVG路径并构建多边形(使用基于的方法),但它们看起来比链接的SVG中的曲线要差得多。内置数据库似乎没有针对美国各州和加拿大省份的形状:只有国家

谢谢


PS:其目的是能够为州/省数据制作choropleth地图(即根据与该州/省相关的一些数据为州/省上色)

对现有地图图像进行一些图像处理怎么样?这只是一个原型工作流。在Mathematica中集成了Wolfram]Alpha和图像处理的数据,有很多事情需要探索。你可以更详细地播放这些。我并没有真正尝试使用人口数据并相应地给地图上色,但我认为这是可能的。函数形态学组件[…]检测并索引边界之间的状态区域

map = WolframAlpha["Illinois", {{"Location:USStateData", 1}, "Image"}]


您可以使用.kml或.kmz文件获取州/省及其轮廓多边形的列表。例如,对于美国,您可以使用。要提取多边形,可以执行以下操作

usa = Import["http://code.google.com/apis/kml/documentation/us_states.kml", 
  "Data"];

transform[s_] := StringTrim[s, Whitespace ~~ "(" ~~ ___ ~~ ")"]

polygons = Thread[transform["PlacemarkNames" /. usa[[1]]] -> 
  ("Geometry" /. usa[[1]])];
stateNames = polygons[[All, 1]];
然后多边形将是一个包含元素的列表
“state name”->多边形[点]
。函数
transform
只是一个辅助函数,用于以所需格式从.kml文件中获取地名(在本例中,从名称末尾剥离“(年)”

使用这些多边形,然后可以使用
FaceForm[]
为各个多边形着色。假设我们有一个格式为
“state”->value
的数据列表,例如

data = Thread[regionNames -> RandomReal[{0, 1}, Length[regionNames]]];
然后我们可以根据

colourf = ColorData["Temperature"];
element[value_, poly_] := GraphicsGroup[{EdgeForm[Black], FaceForm[colourf[value]], poly}]

Graphics[{element @@@ Transpose[regionNames /. {data, polygons}]}]
看起来像


另一个概述各州的选项从使用地理功能开始:

GeoGraphics[
{
EdgeForm[Black],
Polygon[CountryData["UnitedStates", "AdministrativeDivisions"]]
}
GeoBackground -> None,
GeoProjection -> "Mercator"
]

相关:。哇,这太好了!我真的希望有一个工作流,我可以扩展到制作choropleth地图(例如,通过颜色显示州/省数据),这将很难用这种方法…@nicolaskruchten您可能会发现一些有用的信息。谢谢!我已经看到了,但我需要的是一张北美地图,上面标明了州/省。这在内置数据库中不可用,我没有任何形状文件,只有SVG文件。
data = Thread[regionNames -> RandomReal[{0, 1}, Length[regionNames]]];
colourf = ColorData["Temperature"];
element[value_, poly_] := GraphicsGroup[{EdgeForm[Black], FaceForm[colourf[value]], poly}]

Graphics[{element @@@ Transpose[regionNames /. {data, polygons}]}]
GeoGraphics[
{
EdgeForm[Black],
Polygon[CountryData["UnitedStates", "AdministrativeDivisions"]]
}
GeoBackground -> None,
GeoProjection -> "Mercator"
]