首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >网络标志中的多尺度景观(小斑块和更大的斑块组)

网络标志中的多尺度景观(小斑块和更大的斑块组)
EN

Stack Overflow用户
提问于 2019-11-10 15:07:13
回答 2查看 100关注 0票数 0

我试图代表一个多尺度的环境,我有大的斑块,代表景观中的高价值地区,小的斑块,有当地的信息。例如,我想要1km^2尺度的降雪数据,但我也希望有更大的贴片(9km^2)来总结大型信息。我的每个大补丁都有一个与其邻居不同的变量值,但是在其他补丁中,变量值可能会在整个景观中重复。我正在寻找最直截了当的方式,我的海龟,以确定之间的差异,大面积的补丁。我曾经想过要创建补丁集,但我不知道如何绕过在不同补丁中重复出现的变量值的问题。任何帮助都是非常感谢的。

编辑:我已经创建了一个具有相同补丁结构的光栅作为大型光栅,并使用它指定了“修补程序id”,这样世界上就不再有可变的重复。我仍在努力让海龟将这些较大的斑块识别为分组实体。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-11-11 22:53:46

你对我的第一个回答发表了意见

我的主要问题是,我需要运行一个"find max-one-one“--大型补丁--大型变量--这样我就需要我的海龟了解相邻的大型补丁是什么,并且能够以单位的形式读取它们,如果这是有意义的话。我不知道如何把它融入你的回答,有什么想法吗?

以下是如何做到这一点。这段代码既快速又草率,但它说明了这一点。

让大区域具有在创建过程中生成的x和y值。基本上,这些存储覆盖视图端口的大区域的网格的列和行号。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
breed [ large-regions large-region ]
large-regions-own [
   terrain
   region-color
   population
   x
   y
]

然后,从概念上讲,一个区域的邻居将在该区域的x和y值的+/- 1中包含x和y值,这样您就可以这样识别它们。

为了以牺牲空间为代价简化编码,当我生成区域时,我还将该区域的唯一标识符(who)及其x和y值存储到该区域的每个补丁中,即变量lrx和lry中。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
patches-own [
   large-region-who
   lrx
   lry
]

根据您的要求,查找具有最大人口值的相邻大区域的中心部分如下。我编写这个代码是为了调试的速度,而不是为了优雅,所以可以大大地清理它。完整的源代码有许多打印语句,这些语句有效地注释了解决所需搜索的每一步。

这个搜索(补丁0 0),从该补丁中查找大区域的x和y的信息,生成具有附近x和y值的大区域的代理集,在该集合上进行最大总体搜索,以提取人口最多的区域。它还将询问补丁涂成黑色,本地大面积蓝色,以及最大种群邻接红色。

它主要是起作用的--大面积的区域被它们应该在哪里的一个补丁所抵消--但这说明了这一点。运行安装程序,然后自己去看看。

下面是要玩的(丑陋的)代码。有趣的问题。您也可以轻松地将其扩展到小区域,并且两者同时工作。享受吧!

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
  globals [
  large-region-size
]



breed [ large-regions large-region ]
large-regions-own [
   terrain
   region-color
   population
   x
   y
]


patches-own [
   large-region-who
   lrx
   lry
]

to setup
  clear-all
  set large-region-size 5

  no-display
    make-large-regions
     ask patches  [ set pcolor white ]
  display

  ask large-regions [ set hidden? true]

    print (word " hilly region count: " count large-regions with [terrain = "hilly"] )
;;  print (word " deep snow count: " count small-regions with [snow-cover > 75])

  reset-ticks
end

to go

  ask patches [ set pcolor white]

;  ;; lets examine the large-regions
;  print " large region xvals "
;  let xvals [ ]
;  ask large-regions [ set xvals fput x xvals ] 
;  set xvals remove-duplicates xvals
;  show xvals
;  print " "
;  print " patch lrx values: "
;  set xvals [ ]
;  ask patches [ set xvals fput lrx xvals ] 
;  set xvals remove-duplicates xvals
;  show xvals
;  print "========================================="

  print " let's examine large-regions around the patch at 0 0 "

  let x-spot 0
  let y-spot 0

  print ( word " looking for large-regions with max population bordering the following patch " x-spot " " y-spot)

 ; ask n-of 1 patches [ set x-spot pxcor set y-spot pycor print (word "selected patch " x-spot ", " y-spot )]

  let home-who [ large-region-who] of patch x-spot y-spot
  print (word "home-region-who is " home-who)
  print " "

  ;; thinking ahead, we have coded the x and y values of the large region around us directly into the patch variables
  let home-x [ lrx ] of patch x-spot y-spot
  let home-y [ lry ] of patch x-spot y-spot

  print (word "this blue home region has x=" home-x " and y=" home-y )
  ask patches with [lrx = home-x and lry = home-y] [ set pcolor blue ]

  ask patch x-spot y-spot [ set pcolor black ]

  let home-neighbor-set large-regions with [
     ( x >= ( home-x - 1 )) and ( x <= ( home-x + 1) ) and (y >= ( home-y - 1 ) ) and ( y <= ( home-y + 1 ) ) ]

   print "count of home-neighbor-set is "
   print count large-regions with [
     ( x >= ( home-x - 1 )) and ( x <= ( home-x + 1) ) and (y >= ( home-y - 1 ) ) and ( y <= ( home-y + 1) ) ]
   print " "
   print "here is that set " 
   show home-neighbor-set
   print " "
   ask home-neighbor-set [ print (word "Large region with who = " who " has population "  population  )]


   let big-boy max-one-of home-neighbor-set [ population]
   show big-boy

  print ( word   " Neighboring red large-region with largest population is " big-boy " with population " [population] of big-boy ) 

  let bbx 0
  let bby 0
  let bwho 0

  ask big-boy [ set bbx  x set bby  y  set bwho who]    
  ask patches with [lrx = bbx and lry = bby] [ set pcolor red ]
  tick
end

to make-large-regions  ;; for testing
let px min-pxcor
let py min-pycor
let region-id -1    ;; missing
let mysize large-region-size
let stopper 0

  while [px < max-pxcor] [
    while [py < max-pycor] [

      if stopper > 300 [   stop ]    ;; stops making large regions
       set stopper stopper + 1

      let xcode   round ( ( px + 1) / 5)
      let ycode   round ( ( py + 1) / 5)

      ;; make a new region
      let decolor one-of [ red blue yellow green ]
      create-large-regions 1 [
        set terrain one-of ["hilly" "flat" "mountain" "water" "swamp"]
          set region-id who
          set population random 1000
          set x xcode
          set y ycode

          set region-color decolor
      ]

      ;; large region is defined, update the patches in that region

      ask patches with [ (abs (pxcor - px) < (mysize / 2) )
        and (abs (pycor - py) < (mysize / 2) )]  [
          set pcolor decolor
          set large-region-who region-id
          set lrx xcode
          set lry ycode
          ]

      set py py + mysize

    ]
     if py > max-pycor [
        set py min-pycor
        set px px + mysize]
  ]

end
票数 1
EN

Stack Overflow用户

发布于 2019-11-10 19:09:30

这可能不是最好的办法,但我认为这是可行的。您可以让区域拥有多个变量,例如“大区域-唯一-id”和“小区域-唯一-id”,并在设置所有这些变量时进行一次传递。然后,一只海龟只需看一片,就可以知道它属于多大的一小块区域。

如果你还制造了一种叫做“区域”的代理,你可以拥有区域本身的变量,并且有一个唯一的区域id。(实际上,特工的电话号码会对此产生影响)

这应该对信息进行编码,以便移动的海龟能够轻松地查找相关信息。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
breed [ large-regions large-region ]
large-regions-own [
   terrain-type
   large-scale-variables
...
   (who)
]

breed [ small-regions small-region ]
small-regions-own [
   snow-cover
   small-scale-variables
   ...
   (who)
]

patches-own [
   large-scale-region-who   ;;  the id (who) of the large-scale-region the patch is in
   small-scale-region-who   ;;  the id (who) of the small-scale-region the patch is in
   ...
]

然后,海龟可以问一个补丁,以相关谁的信息,并使用它来查找数据从较大的“补丁”。

这可能是个什么样子

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
  print (word " hilly region count: " count large-regions with [terrain = "hilly"] )
  print (word " deep snow count: " count small-regions with [snow-cover > 75])

  ;; how about highlighting patches that are mountainous with deep snow?

    no-display
    ask patches [
    set terrain-type ""
    set my-snow-cover -1

    set srw  small-scale-region-who     
    if srw > 0 [set my-snow-cover [snow-cover] of (small-region srw)]

    set lrw  large-scale-region-who       
    if lrw > 0 
    [ set terrain-type [terrain] of large-region lrw]

    if-else  (terrain-type = "mountain") and (my-snow-cover > 75)  
        [ set pcolor white ]
        [ set pcolor black ]

   ]
  display
  print " The mountainous terrain with deep snow-cover is shown in white "
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58793754

复制
相关文章
是什么让量子计算如此难以解释?
作者 | Scott Aaronson 译者 | Sambodhi 策划 | 刘燕 直到我们开始讨论这些计算机的潜在应用,才需要理解它们背后的物理原理。 你也许听说过,量子计算机是一台神奇的超级机器,它通过尝试不同平行宇宙中所有可能的答案,将很快治愈癌症,遏制全球变暖。15 年来,在我的博客(https://www.scottaaronson.com/blog/)和其他地方,我一直在抨击这种“卡通化”的观点,试图解释我所看到的更为微妙而又具有讽刺意味的真相。作为一名量子计算研究者,我将此视为一项公共服务,几
深度学习与Python
2023/04/01
3280
是什么让量子计算如此难以解释?
是什么原因让比特币如此诱人拥有它?
比特币是创造者中本聪(Satoshi Nakamoto)对华尔街和中央机构表达不信任和愤世嫉俗的项目,这个问题在比特币诞生之初就突显出来。
用户1251214
2019/04/20
4690
是什么原因让比特币如此诱人拥有它?
全世界的TikTok:揭秘它背后强大的算法系统
「病毒式传播」让我们开诚布公地说吧,有谁会不喜欢滑稽小狗或者小奶猫的视频呢?尤其是在全球因疫情陷入困境的今天,这样的小视频多多少少能让人逃离现实。
后端码匠
2020/08/04
1.4K0
全世界的TikTok:揭秘它背后强大的算法系统
是什么让测试工作如此辛苦?
大家好,我是测试君,下面来分享一篇文章《是什么让测试工作如此辛苦?》,希望此文能够让你有所收获,当然也希望能够结识一些在测试路上能够一起前行的朋友。
软件测试君
2019/12/05
4990
是什么让测试工作如此辛苦?
用了10年Postman,没想到它的Mock功能也如此强大
在整个开发过程中,前端或后端的延迟可能会阻碍相关团队有效地完成工作。一些后端的API工程师已经开始使用Postman去测试后端endpoint,而不依赖于前端UI来模拟API请求。
吾非同
2021/06/01
2.2K0
用了10年Postman,没想到它的Mock功能也如此强大
善待你遇到的bug,它只会让你更强大!
在速运快递项目前端页面用户注册的时候,点击注册之后总是报空指针异常,我当时一直想的是我前端页面封装model失败了吗?但是根本没有想到是CustomerService是null. 针对这个问题,我的解
神秘的寇先森
2018/05/30
3890
MyBatis流式查询,如此强大!
流式查询指的是查询成功后不是返回一个集合而是返回一个迭代器,应用每次从迭代器取一条查询结果。
架构师修炼
2022/03/31
1.1K0
Spring Boot + Vue 如此强大?
虽然 B/S 是目前开发的主流,但是 C/S 仍然有很大的市场需求。受限于浏览器的沙盒限制,网页应用无法满足某些场景下的使用需求,而桌面应用可以读写本地文件、调用更多系统资源,再加上 Web 开发的低成本、高效率的优势,这种跨平台方式越来越受到开发者的喜爱。
Leetcode名企之路
2021/09/14
6090
[译] 是什么让 Golang 如此受欢迎?语言创造者的回顾
自从 2009 年开源以来,Go 语言的人气一直在增长。其最初创建时背后的五位谷歌软件工程师回顾了是什么推动了这种增长。
pseudoyu
2023/04/11
2050
这就是深度学习如此强大的原因
来源:数学中国本文约2200字,建议阅读9分钟当有适当的神经网络架构以及足够大的数据,深度学习网络可以学习从一个向量空间到另一个向量空间的任何映射。 据报道称,由于采用基于云的技术和在大数据中使用深度学习系统,深度学习的使用在过去十年中迅速增长,预计到 2028 年,深度学习的市场规模将达到 930 亿美元。 但究竟什么是深度学习,它是如何工作的? 深度学习是机器学习的一个子集,它使用神经网络来执行学习和预测。深度学习在各种任务中都表现出了惊人的表现,无论是文本、时间序列还是计算机视觉。深度学习的成功主要
数据派THU
2022/04/22
6620
这就是深度学习如此强大的原因
这就是深度学习如此强大的原因
据报道称,由于采用基于云的技术和在大数据中使用深度学习系统,深度学习的使用在过去十年中迅速增长,预计到 2028 年,深度学习的市场规模将达到 930 亿美元。
气象学家
2022/04/18
4020
这就是深度学习如此强大的原因
惊呆!原来 markdown 的画图功能如此强大!
Markdown 是一种轻量级标记语言,相比于 xml、html 等超文本标记语言,Markdown 的语法更简单,结构更清晰,更加易读易用。
用户3147702
2022/06/27
9.4K0
惊呆!原来 markdown 的画图功能如此强大!
罗永浩直播摔“坚果”,是什么让他如此不顺心?
此外,网络上还有用户爆料称锤子坚果Pro玻璃后盖莫名开裂。 昨晚,锤子手机CEO罗永浩与产品总监朱萧木做客某直播平台,与网友们展开互动。讲究情怀的锤子科技一直深受粉丝们的喜爱,但是不知道是出于什么原因
镁客网
2018/05/29
4290
边缘计算是什么以及为什么需要它
联合航空公司在登机口、跑道和飞机上的工作人员都掌握着重要的航班信息。医疗专业人员可以使用虚拟现实耳机和平板电脑来评估和监测运动员和士兵的大脑损伤,利用SyncThink公司生产的EyeSync设备可以评估和监测运动员和士兵的脑损伤。很快,一个自动车队将能够共享道路和交通状况的数据,并相应地更新他们的行程。
边缘计算
2019/07/03
5260
边缘计算是什么以及为什么需要它
什么是DDOS攻击?它的原理是什么?它的目的是什么?
网站最头痛的就是被攻击,常见的服务器攻击方式主要有这几种:端口渗透、端口渗透、密码破解、DDOS攻击。其中,DDOS是目前最强大,也是最难防御的攻击方式之一。
拾光博客
2023/05/16
9810
Java8 中的 Stream 那么强大,那你知道它的原理是什么吗?
和迭代器又不同的是,Stream 可以并行化操作,迭代器只能命令式地、串行化操作。顾名思义,当使用串行方式去遍历时,每个 item 读完后再读下一个 item。而使用并行去遍历时,数据会被分成多个段,其中每一个都在不同的线程中处理,然后将结果一起输出。
逆锋起笔
2021/11/12
9090
jsp的10年是谁让它如此落幕?
随着容器技术(docker、k8s)以及微服务架构逐步成熟和发展,这种强调后端分离思想让jsp这个陪伴我近10年的页面渲染技术宣告落幕了,有点伤感。。。
猿芯
2020/07/06
9750
DARPA:BCI技术强大的背后推手
世界著名的BCI公司Neuralink的"缝纫机 "手术机器人可以追溯到5年7000万美元的SUBNETs计划,Stentrode的最初概念是由RE-NET计划资助的,早期Braingate试验使用的假肢是由 "Revolutionizing Prosthetics "项目计划资助,而这些重大项目资助的背后推手都来自美国国防部高级研究计划局(DARPA)每年对BCI项目数百万的投资,几十年来,DARPA一直保持对BCI项目持续的资助。在美国,该领域的几乎每一项进展或主要技术都可以追溯到DARPA对研究人员的资助,项目资助采用公开竞标的方式,且往往背后承载了远大的目标,所有项目都以在未来几年内影响整个领域未来为目标。
脑机接口社区
2022/09/22
3990
DARPA:BCI技术强大的背后推手
万能的Python背后:这6大原因让它爆火
大数据文摘作品,转载要求见文末 作者 | Kayla Matthews 编译 | 赵倩南,康璐,宁云州 Python现在已经成为了一种非常通用的语言了,尤其是在数据科学盛行的今天,因为其易于阅读和编写的特点,更是越来越受到编程者的追捧。在IEEE发布的2017年编程语言排行榜中Python也高居首位。然而事实上,Python的第一个公开版本在1991年就已经发布了,那么Python究竟为什么在近年爆火呢?我们这就带你来一探究竟。 Python大起底 像我们之前所说,Python已不是一种年轻的编程语言。虽然
大数据文摘
2018/05/24
8150
万能的Python背后:这6大原因让它爆火
分享一篇python的文章 Python现在已经成为一种非常常见的语言,特别是在今天的数据科学中,由于其易读易写的特点,它越来越受到程序员的欢迎。在IEEE发布的2017年编程语言排名中,Python
用户9925864
2023/03/01
1.1K0
万能的Python背后:这6大原因让它爆火

相似问题

如何从一个列表中找到数字,结果是基于给定数字的序列?

23

如何在excel中找到给定数字的最大序列?

12

从给定的字符串中找到给定长度的子序列?

24

给定数字的总和

226

序列给出了已经给定的数字

14
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文