Thanks Jason!
On Monday, May 19, 2014 5:01:21 PM UTC-4, Jason Bertsche wrote: > > I am still interested in knowing who (meaning other turtles) are linked > to a given turtle, either to or from. Is this data available to be accessed > through LinkManager and if so, do you have a suggestion for how to do so? > > > For clarity, I'd like to point out that links are created with the > `create-link*` > primitives<http://ccl.northwestern.edu/netlogo/docs/dictionary.html#linkgroup>. > > That is, links between turtles are created in your model's NetLogo code. > To get at link information from within Java code, you *could* use > `LinkManager` and its `findLink*` methods, but I don't see those methods as > helpful for visualization purposes. Instead, I think you would want to get > a handle on the collection of links in the model, which you can do by using > `workspace.world().links()` (similar to how you got ahold of the turtles). > Then, you can iterate over the collection, looking at each link, looking up > the corresponding turtle on each end, and drawing the visual link between > them. > > And is "who is linked to who" part of the updates provided in the diffs > method of Mirroring? > > > Yes, updates are given with information about newly-created, modified, and > deleted links. Link updates are their own category of updates (alongside > the categories for patches, turtles, and the "observer"). > > On 05/19/2014 03:40 PM, Brant Horio wrote: > > Many thanks Jason for the quick reply. Yes, you are correct that I want to > run NetLogo headlessly and provide my own version of the NetLogo view. This > visualization is using Processing and will for the most part act > independently from what the NetLogo view has been coded to show in the > model. I'll look into the Mirroring, many thanks as I had not known about > that. > > A quick comment regarding the links: I am still interested in knowing > who (meaning other turtles) are linked to a given turtle, either to or > from. Is this data available to be accessed through LinkManager and if so, > do you have a suggestion for how to do so? And is "who is linked to who" > part of the updates provided in the diffs method of Mirroring? > > Thanks for your patience with me. I really appreciate your time. > > Thanks, > Brant > > > On Monday, May 19, 2014 4:06:52 PM UTC-4, Jason Bertsche wrote: >> >> `LinkManager` is for NetLogo >> links<http://ccl.northwestern.edu/netlogo/5.0/docs/programming.html#links>, >> which are a type of visible agent in NetLogo and not exactly an abstraction >> for data correlation. >> >> What's the purpose of your correlation of turtles with other data? >> NetLogo doesn't really have anything built in for saying that a turtle is >> related to some other data. I'm not sure I'm understanding your goals >> correctly, but, if I am, it sounds like you just want to run NetLogo >> headlessly and provide your own version of the NetLogo view, which, of >> course, is kept in sync with the state of the model as it progresses. Is >> that right? If so, and if you're dealing with the code from the 'headless' >> branch of NetLogo, then take of a look at >> 'org.nlogo.mirror.Mirroring<https://github.com/NetLogo/NetLogo/blob/headless/src/main/mirror/Mirroring.scala>'. >> >> Using that and its `diffs` method, you can find out what variables have >> changed in the model since your last snapshot, and then update your >> visualization according to that diff. >> >> On 05/19/2014 02:01 PM, Brant Horio wrote: >> >> Hello all, >> >> I am currently working on calling NetLogo headless from Java for the >> purposes of doing my own non-NetLogo visualization, primarily as just an >> exploratory programming exercise. I am coding in Java and have been able to >> successfully read in and iterate through the turtle agent list, reading in >> agent attribute values, coordinate positions, etc, for the visualization. I >> do so by: >> >> public static HeadlessWorkspace workspace = >> HeadlessWorkspace.newInstance( ); >> public static Iterable<Agent> netLogoAgentList; >> >> netLogoAgentList = workspace.world( ).turtles( ).agents( ); >> >> ... after which I iterate through netLogoAgentList to get the variable >> values, etc that I need for my visualization. >> >> >> What I am envisioning is that for each of these agents read in, I >> create an agent object in Java that carries the read in variable updates >> from its NetLogo counterpart and my own methods for the visualization. I >> also want these agent object to carry with them an ArrayList of other agent >> objects that they are "linked" with, as informed to them by updates from >> the NetLogo model. Are there any suggestions out there for the best way for >> me to do so? I suspect it will involve LinkManager, in particular >> LinkManager.findLinksWith( ). >> >> My current strategy (though I have found no success yet) is to do the >> following: >> >> 1. iterate through netLogoAgentList, and cast as (Turtle). >> - netLogoAgentList = workspace.world( ).turtles( ).agents( ); >> - for (Agent t : netLogoAgentList) >> { >> Turtle tmpAgent = (Turtle) >> workspace.world().turtles().agent(t); >> } >> 2. for each Turtle agent, tmpAgent, call LinkManager.findLinksWith( >> ), using tmpAgent and workspace.world( ).turtles( ) as arguments, the >> idea >> being I can get back an agent set of all turtles linked to or from turtle >> tmpAgent. >> 3. Store the linked turtles to my Java agent object in the previously >> mentioned ArrayList, allowing me to later iterate through the list and >> plot >> out the links in the NetLogo network in my visualization. >> >> I am produce perhaps some of the ugliest code around so I apologize if >> I'm totally off base in my pseudo code/approach/thought process. I have >> tried a bunch of different things though and cannot seem to get what *I >> think* I should be able to get back from LinkManager, which is the turtles >> that each one is linked from/to. Any advice for how to best access the API >> to get this data would be very much appreciated. >> >> THANK YOU IN ADVANCE!!! >> >> -- >> You received this message because you are subscribed to the Google Groups >> "netlogo-devel" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to [email protected]. >> For more options, visit https://groups.google.com/d/optout. >> >> >> -- > You received this message because you are subscribed to the Google Groups > "netlogo-devel" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected] <javascript:>. > For more options, visit https://groups.google.com/d/optout. > > > -- You received this message because you are subscribed to the Google Groups "netlogo-devel" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
