大家好,
我需要一些想法和帮助。我希望处理一些随地理位置和时间变化的数据。我有这些位置的经纬度,以及几个时间段的每小时测量值。如何在 JMP 中设置行和列,以便绘制随时间变化的属性图表(地图),并调查或让 JMP 突出显示属性在特定时间段内超过特定阈值的位置等等?
谢谢你的帮助
可以在JMP示例数据目录中找到一个可能有用且信息丰富的模板。 这是一个基于Graph Builder的拿破仑三月的可视化效果。 我认为数据表称为NapoleansMarch.jmp或类似名称。 它显示了背景地理地图,并显示了变量(拿破仑各个军队的规模)在该地理空间的大小上如何变化。 可能会接近您所追求的吗?
这是生成脚本的脚本的HTML输出的链接...看一看,看是否像您想要的那样?拿破仑三月HTML输出
感谢您的指导。我还看了拿破仑三月份的JMP表。拿破仑三月的可视化效果与我尝试创建的效果相似。
但是我的问题是我只有大约40个位置(40个经度和纬度),但是我有超过50,000个测量值(记录超过5年的每小时)。
因此,我将Time_stamp设置为第一列,并将与每个位置关联的度量设置为其他列。我现在不确定如何将纬度和经度与每次测量相关联。
拿破仑的March JMP表具有“纬度”和“经度”作为列,但是在这种情况下,我认为这不是“实用的”。
请提供进一步的帮助。
50,000 * 40 行很大,但对于 JMP 来说不算太大。您的表将在 100-300 MB 范围内,具体取决于数据列的数量。正如 Jim 所建议的那样,使用虚拟连接可以删除两列(如果您需要其他常量站数据,则可能会删除更多列),但代价是添加一个 ID 列,但我认为这不是您开始所需的优化。
什么样的观众会看到这个?他们更喜欢视频、带有控件的实时图表还是静态图像?
正如@Craige_Hales提到的,这个行数没有问题,JMP 的表运行得非常高效。
首先,数据结构越简单越好。
此外,在 JMP 中重塑数据非常容易,例如将其分发到更多表中、拆分或堆叠。
你的数据现在在哪里?如果它在两个 csv 文件中,那么在 JMP 中打开这两个文件也很容易,
它们正在变成 JMP 数据表,然后使用查询生成器将它们连接起来。
如果数据定期更新,您甚至可以使用查询生成器直接从 csv 文件导入新数据。
大家好,
我已经将数据相对清理干净,并在 JMP 中将其作为 2 个单独的表。一个表包含站点 ID、纬度和经度,另一个表包含每个站点每小时测量的特定属性,持续 5 年。使用查询生成器的预览连接不正确,因此我希望获得一些更具体的指导,了解如何使用一个表中的地理数据和另一个表中的基于时间的属性来创建可视化。
顺便说一句,我正在从公共来源提取更多此类财产文件,因为我们有兴趣研究全省大约 10 个此类财产。
另外,回答你的问题,目前的可视化是我们数据探索和特征研究过程的一部分。我们认为观众最终会对动画气泡图非常感兴趣,这些气泡图显示了他们自己所在地附近发生的事情,比如在某个半径范围内。现在,我们只是在研究数据,看看可能存在哪些有意义的模式。
try(close(dtLatLon,nosave));
try(close(dtTempTime,nosave));
dtLatLon = New Table( "LatLon",
New Column( "city", Character, "Nominal", Set Values( {"New York", "London"} ) ),
New Column( "lat", Numeric, "Continuous", Format( "Best", 12 ), Set Values( [40.73061, 51.509865] ) ),
New Column( "lon", Numeric, "Continuous", Format( "Best", 12 ), Set Values( [-73.935242, -0.118092] ) )
);
dtLatLon << save( "$temp/LatLon_deleteme.jmp" ); // disk file name is required for virtual join
dtLatLon:city << Set Property( "Link ID", 1 );
dtTempTime = New Table( "TempTime",
New Column( "city", Character, "Nominal",
Set Values( {"New York", "London", "New York", "London", "New York", "London", "New York", "London", "New York", "London"} )
),
New Column( "temp", Numeric, "Continuous", Format( "Best", 12 ), Set Values( [18, 30, 18, 12, 24, 17, 15, 30, 29, 19] ) ),
New Column( "time", Numeric, "Continuous", Format( "yyyy-mm-ddThh:mm", 16 ), Input Format( "yyyy-mm-ddThh:mm" ),
Set Values( [3660682600, 3660683600, 3660684600, 3660685600, 3660686600, 3660687600, 3660688600, 3660689600, 3660690600, 3660691600] )
)
);
dtTempTime << save( "$temp/TempTime_deleteme.jmp" ); // disk file name is required
dtTempTime:city << Set Property( "Link Reference", Reference Table( dtLatLon ) );
dtTempTime << Bubble Plot(
X( Referenced Column( "lon[city]", Reference( Column( :city ), Reference( Column( :lon ) ) ) ) ),
Y( Referenced Column( "lat[city]", Reference( Column( :city ), Reference( Column( :lat ) ) ) ) ),
Sizes( :temp ),
Time( :time ),
ID( :city ),
Time Index( 4.0938 ),
Title Position( -59.21926910299, 46.12 ),
SendToReport(
Dispatch( {}, "1", ScaleBox, {Format( "Best", 12 ), Min( -80 ), Max( 10 ), Inc( 10 ), Minor Ticks( 0 )} ),
Dispatch(
{},
"2",
ScaleBox,
{Scale( "Geodesic" ), Format( "Best", 12 ), Min( 19.0897009966777 ), Max( 72.9102990033223 ), Inc( 2 ), Minor Ticks( 1 )}
),
Dispatch(
{},
"Bubble Plot",
FrameBox,
{Frame Size( 602, 360 ), Background Map( Boundaries( "World" ) ), Grid Line Order( 2 ), Reference Line Order( 3 )}
)
)
);由于数据已经存在,您的表格看起来会更简单。您可能有一个数字 ID 而不是城市名称来将表格链接在一起。
Bubble PlotBubble Plot气泡图