【问题标题】:extension exception: 1944553 while applying raster netlogo gis扩展异常:1944553 应用光栅 netlogo gis
【发布时间】:2015-10-30 13:55:08
【问题描述】:

我正在尝试使用 GIS 扩展中的 apply-raster 将 ascii 加载到 Netlogo 中。 虽然我之前做过很多次(虽然不是使用这个特定的 ascii),但 netlogo 现在会抛出以下错误:

extension exception: 1944553
error while observer running GIS:APPLY-RASTER

我不确定为什么会这样。 ascii 有一个投影文件(WKT),应该可以正常工作:

GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]]

ascii 本身有这些参数:

ncols         1481
nrows         1314
xllcorner     -10.577897001
yllcorner     49.902509998994
cellsize      0.00833333333333
NODATA_value  -9999

我正在运行这四行来加载 ascii 和调整世界大小。

set my-dataset "data/my-folder/my-file.asc"
resize-world 0 gis:width-of (gis:load-dataset my-dataset) - 1 0 gis:height-of (gis:load-dataset my-dataset) - 1
gis:set-world-envelope-ds (gis:envelope-of (gis:load-dataset my-dataset))
gis:apply-raster (gis:load-dataset my-dataset) my-variable

有人知道这个错误吗? 或者有没有一个地方我可以查看这个扩展异常的含义?我找不到它,但也许我找错地方了。

谢谢!

编辑: 有关错误的详细信息,请参见下文

Extension exception: 1944553
error while observer running GIS:APPLY-RASTER
  called by procedure LOAD-DATASETS
  called by procedure CREATE-WORLD
  called by Button 'create-world'

org.nlogo.nvm.EngineException: Extension exception: 1944553
 at org.nlogo.agent.World.fastGetPatchAt(World.java:560)
 at org.nlogo.agent.World.fastGetPatchAt(World.java:35)
 at org.myworldgis.netlogo.ApplyRaster.performInternal(ApplyRaster.java:53)
 at org.myworldgis.netlogo.GISExtension$Command.perform(GISExtension.java:63)
 at org.nlogo.prim._extern.perform(_extern.java:54)
 at org.nlogo.nvm.Context.stepConcurrent(Context.java:91)
 at org.nlogo.nvm.ConcurrentJob.step(ConcurrentJob.java:82)
 at org.nlogo.job.JobThread.org$nlogo$job$JobThread$$runPrimaryJobs(JobThread.scala:143)
 at org.nlogo.job.JobThread$$anonfun$run$1.apply$mcV$sp(JobThread.scala:78)
 at org.nlogo.job.JobThread$$anonfun$run$1.apply(JobThread.scala:76)
 at org.nlogo.job.JobThread$$anonfun$run$1.apply(JobThread.scala:76)
 at scala.util.control.Exception$Catch.apply(Exception.scala:88)
 at org.nlogo.util.Exceptions$.handling(Exceptions.scala:41)
 at org.nlogo.job.JobThread.run(JobThread.scala:75)

NetLogo 5.2.0
main: org.nlogo.app.AppFrame
thread: JobThread
Java HotSpot(TM) Server VM 1.6.0_45 (Sun Microsystems Inc.; 1.6.0_45-b06)
operating system: Windows 7 6.1 (x86 processor)
Scala version 2.9.2
JOGL: (3D View not initialized)
OpenGL Graphics: (3D View not initialized)
model: test_run_world

03:23:17.778 SwitchedTabsEvent (org.nlogo.app.Tabs) AWT-EventQueue-0
03:23:17.778 RuntimeErrorEvent (org.nlogo.app.App$$anon$1 (org.nlogo.window.GUIWorkspace)) AWT-EventQueue-0
03:23:17.778 InterfaceGlobalEvent (org.nlogo.window.ChooserWidget) AWT-EventQueue-0
03:23:17.778 InterfaceGlobalEvent (org.nlogo.window.InputBoxWidget) AWT-EventQueue-0
03:23:17.778 InterfaceGlobalEvent (org.nlogo.window.InputBoxWidget) AWT-EventQueue-0
03:23:17.778 InterfaceGlobalEvent (org.nlogo.app.InterfacePanel$2 (org.nlogo.window.SliderWidget)) AWT-EventQueue-0
03:23:17.778 InterfaceGlobalEvent (org.nlogo.window.ChooserWidget) AWT-EventQueue-0
03:23:17.778 InterfaceGlobalEvent (org.nlogo.window.ChooserWidget) AWT-EventQueue-0
03:23:17.778 InterfaceGlobalEvent (org.nlogo.window.ChooserWidget) AWT-EventQueue-0
03:23:17.778 InterfaceGlobalEvent (org.nlogo.widget.SwitchWidget) AWT-EventQueue-0

【问题讨论】:

  • 这个错误在我看来好像问题出在 GIS 扩展中;该扩展正在计算 pxcor 和/或 pycor 的越界值,然后尝试访问不存在的补丁。我不知道 GIS 的东西或扩展的胆量,所以我无法推测为什么会这样。在这种情况下,它至少应该给出一个易于理解的错误信息。

标签: gis netlogo


【解决方案1】:

我很确定 RasterDataset.resample 中存在一个错误,但我从来没有时间研究它。您应该能够通过从对 resize-world 的调用中删除“- 1”来解决此问题,即,

resize-world 0 gis:width-of (gis:load-dataset my-dataset) 0 gis:height-of (gis:load-dataset my-dataset)

如果这不起作用,请告诉我,我会看看是否有时间进一步调查。

【讨论】:

  • Eric,也许你可以在github.com/netlogo/gis-extension/issues 上就这个假定的问题开一张票?即使这是一个模糊的问题,只是说出你能记住的任何事情,在什么都值得的基础上?
  • 感谢您的 cmets。我试图查看 ascii 是否是问题所在,但在不同的文件上运行它并没有解决它。然而,重新创建 ascii 解决了它,没有明显的变化可见。我试图找出任何差异,因此在这里可能会有所帮助,但无法检测到任何东西。不知何故,第一个文件一定已损坏。 “-1”在那里是因为 netlogo 世界从 0 开始,而 ascii 的 gis:width-从 1 开始。没有“-1”会导致世界从 1 到大。跨度>
【解决方案2】:

重新创建所有 ascii 文件后,问题终于解决了。尽管新旧 ascii 文件没有明显区别,但旧文件一定是被某种方式损坏了。问题中的代码现在可以正常工作。希望这个主题对遇到同样错误的人仍然有帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-30
    • 2020-11-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多