Отображение определенных исправлений в NetLogo из данных Excel

#csv #coordinates #netlogo #patch

#csv #координаты #netlogo #исправление

Вопрос:

Цель этой модели — отобразить участки, которые были заняты агентами-волками, и показать, где волки совершили успешные убийства (агентов-жертв). Данные предоставляются файлом CSV, в котором перечислены все координаты исправлений, которые в какой-то момент посещал волк, и если было успешное убийство. Формат файла CSV: отметьте #, идентификатор исправления (pxcor pycor), идентификатор волчьей стаи и количество убийств. На данный момент я просто хочу, чтобы у исправлений, у которых есть pxcor pycor = patch-id, был атрибут «ACTIVE», чтобы я мог легко отличить, какие исправления посещали wolves, а какие исправления не посещались агентами wolf.

 globals [
  grass-patches                 ;; NLCD classifications
  forest-patches
  urban-patches
  agriculture-patches
  water-patches
  barren-patches
  vegetation-dataset           ;; DEM data layers
  elevation-dataset
  slope-dataset
  map-data                     ;;CSV data from wolf model-- wolf dispersal and kmarker location
  ]

patches-own [
  NLCDtype          ;; The grouping/classifications of the different NLCD veg-types--these correspond to the global patch types
  veg-type          ;; NLCD gridcodes for teh vegetation data
  veg-amount        ;; Resources/biomass available for the prey to consume
  elevation         ;; DEM
  slope             ;; DEM
  countdown         ;; How the vegetation "grow" and die through the model time
  hash-id           ;; The UNIQUE ID (xy coordinates) for each patch
    
  wolf-occupation   ;; How to tell if a wolf agent has been in the patch: ACTIVE shows occupation, INACTIVE has no wolf occupation
]
  

На данный момент я успешно загрузил данные в свой проект .nlogo, используя .CSV считывается построчно:

 to setup
  clear-all
  reset-ticks
  setup-gis
  load-csv-data
  ask patches [ set hash-id (word pxcor " " pycor)]   
end

to load-csv-data
 ifelse ( file-exists? "ph-memory_TEST.csv" )
 [
   file-open "Ph-memory_TEST.csv"
    while [ not file-at-end? ]
    [set map-data csv:from-row file-read-line]
    user-message "File loading complete!"
    ]
  [user-message "There is an error reading the CSV data"]

end
  

Формат файла CSV является:CSV

Я попытался реализовать цикл «while» с помощью этой команды:

 to load-wolf-data
  cp
  ifelse ( is-list? map-data )
  [foreach map-data [
    ask patches [while (pxcor pycor = position 1 map-data) [set wolf-occupation "ACTIVE"]
  ] ]]
    [user-message "You need to load the map data first!"]
end
  

NetLogo выдает синтаксическую ошибку с текущим кодом, но я надеюсь, что кто-нибудь может помочь мне правильно реализовать этот статус wolf-occupation. Или, если кто-нибудь может помочь мне понять, как соотнести идентификатор исправления файла CSV с .nlogo pxcor pycor.

Комментарии:

1. не могли бы вы показать нам несколько примеров данных CSV? Вы перечислили имена переменных, но неясно, например, есть ли пробел или запятая в идентификаторе исправления.

2. @JenB Спасибо за совет. Я включил формат CSV для пояснения

3. Мне кажется, что ваша загрузка картографических данных сохранит только последнюю строку. То есть каждый цикл через while заменяет переменные map-data новой строкой данных. Вы уверены, что это содержит полный набор данных? После импорта распечатайте его и проверьте.