[{"data":1,"prerenderedAt":5685},["ShallowReactive",2],{"/gis":3,"/gis-surround":5674},{"id":4,"title":5,"body":6,"description":5647,"extension":5648,"meta":5649,"navigation":5666,"path":5671,"seo":5672,"stem":12,"__hash__":5673},"content/gis.md","GIS Extension",{"type":7,"value":8,"toc":5294},"minimark",[9,22,32,36,39,49,52,55,65,68,71,80,83,98,101,111,118,127,143,146,155,158,161,176,179,191,200,207,216,333,342,400,409,716,725,865,874,934,943,1081,1174,1229,1288,1327,1376,1431,1540,1580,1706,1808,1917,1955,1981,2023,2050,2077,2104,2132,2158,2185,2216,2319,2346,2378,2438,2481,2524,2565,2601,2645,2675,2705,2756,2943,3145,3370,3446,3476,3509,3538,3570,3623,3673,3721,3957,4098,4130,4157,4183,4231,4284,4310,4336,4436,4518,4688,4745,4778,4820,5007,5056,5084,5117,5147,5175,5210],[10,11,15],"h1",{"id":12,"className":13},"gis",[14],"section-heading",[16,17,21],"a",{"className":18,"href":20},[19],"section-anchor","#gis","GIS",[23,24,27],"h2",{"id":25,"className":26},"using",[14],[16,28,31],{"className":29,"href":30},[19],"#using","Using",[33,34,35],"p",{},"This extension adds GIS (Geographic Information Systems) support to\nNetLogo. It provides the ability to load vector GIS data (points,\nlines, and polygons), and raster GIS data (grids) into your model.",[33,37,38],{},"The extension supports vector data in the form of ESRI shapefiles and\nGeoJSON files.  The shapefile (.shp) and GeoJSON (.geojson) formats\nare the most common format for storing and exchanging vector GIS data.\nThe extension supports raster data in the form of ESRI ASCII Grid\nfiles.  The ASCII grid file (.asc or .grd) is not as common as the\nshapefile, but is supported as an interchange format by most GIS\nplatforms.",[40,41,44],"h3",{"id":42,"className":43},"how-to-use",[14],[16,45,48],{"className":46,"href":47},[19],"#how-to-use","How to use",[33,50,51],{},"In general, you first define a transformation between GIS data space\nand NetLogo space, then load datasets and perform various operations\non them. The easiest way to define a transformation between GIS space\nand NetLogo space is to take the union of the “envelopes”\nor bounding rectangles of all of your datasets in GIS space and map\nthat directly to the bounds of the NetLogo world. See GIS General\nExamples for an example of this technique.",[33,53,54],{},"You may also optionally define a projection for the GIS space, in\nwhich case datasets will be re-projected to match that projection as\nthey are loaded, as long as each of your data files has an associated\n.prj file that describes the projection or geographic coordinate\nsystem of the data. If no associated .prj file is found, the\nextension will assume that the dataset already uses the current\nprojection, regardless of what that projection is.",[33,56,57,58,64],{},"Once the coordinate system is defined, you can load datasets using\n",[16,59,63],{"href":60,"rel":61},"https://docs.netlogo.org/gis#load-dataset",[62],"nofollow","gis:load-dataset",". This primitive\nreports either a VectorDataset or a RasterDataset, depending on what\ntype of file you pass it.",[33,66,67],{},"A VectorDataset consists of a collection of VectorFeatures, each one\nof which is a point, line, or polygon, along with a set of property\nvalues. A single VectorDataset may contain only one of the three\npossible types of features.",[33,69,70],{},"There are several things you can do with a VectorDataset: ask it for\nthe names of the properties of its features, ask it for its\n“envelope” (bounding rectangle), ask for a list of all\nVectorFeatures in the dataset, search for a single VectorFeature or\nlist of VectorFeatures whose value for a particular property is less\nthan or greater than a particular value, or lies within a given\nrange, or matches a given string using wildcard matching\n(”*”, which matches any number of occurrences of any\ncharacters). If the VectorFeatures are polygons, you can also apply\nthe values of a particular property of the dataset’s features to\na given patch variable.",[33,72,73,74,79],{},"For the common use case of converting a VectorDataset of points into\na corresponding set of turtles with the same attributes, the\n",[16,75,78],{"href":76,"rel":77},"https://docs.netlogo.org/gis#create-turtles-from-points",[62],"gis:create-turtles-from-points","\nprimitive should be used.",[33,81,82],{},"There are also several things you can do with a VectorFeature from a\nVectorDataset: ask it for a list of vertex lists, ask it for a\nproperty value by name, ask it for its centroid (center of gravity),\nand ask for a subset of a given agentset whose agents intersect the\ngiven VectorFeature. For point data, each vertex list will be a\none-element list. For line data, each vertex list will represent the\nvertices of a line that makes up that feature. For polygon data, each\nvertex list will represent one “ring” of the polygon, and\nthe first and last vertex of the list will be the same. The vertex\nlists are made up of values of type Vertex, and the centroid will be\na value of type Vertex as well.",[33,84,85,86,91,92,97],{},"For the common use case of spawning a number of turtles inside the\nbounds of a Polygon VectorFeature, the\n",[16,87,90],{"href":88,"rel":89},"https://docs.netlogo.org/gis#create-turtles-inside-polygon",[62],"gis:create-turtles-inside-polygon","\nprimitive should be used. Though the\n",[16,93,96],{"href":94,"rel":95},"https://docs.netlogo.org/gis#random-point-inside",[62],"gis:random-point-inside"," primitive can\nalso be used if you don’t want the spawned turtles to take on\nthe attributes of the Polygon.",[33,99,100],{},"There are a number of operations defined for RasterDatasets as well.\nMostly these involve sampling the values in the dataset, or\nre-sampling a raster to a different resolution. You can also apply a\nraster to a given patch variable, and convolve a raster using an\narbitrary convolution matrix.",[102,103,104],"blockquote",{},[33,105,106,110],{},[107,108,109],"strong",{},"Code Example:"," GIS General Examples has general examples of\nhow to use the extension",[102,112,113],{},[33,114,115,117],{},[107,116,109],{}," GIS Gradient Example is a more advanced\nexample of raster dataset analysis.",[40,119,122],{"id":120,"className":121},"known-issues",[14],[16,123,126],{"className":124,"href":125},[19],"#known-issues","Known Issues",[33,128,129,130,134,135,138,139,142],{},"Values of type RasterDataset, VectorDataset, VectorFeature, and\nVertex are not handled properly by ",[131,132,133],"code",{},"export-world"," and\n",[131,136,137],{},"import-world",". To save datasets, you must use the\n",[131,140,141],{},"gis:store-dataset"," primitive.",[33,144,145],{},"There is currently no way to distinguish positive-area\n“shell” polygons from negative-area “hole”\npolygons, or to determine which holes are associated with which\nshells.",[40,147,150],{"id":148,"className":149},"credits",[14],[16,151,154],{"className":152,"href":153},[19],"#credits","Credits",[33,156,157],{},"The primary developer of the GIS extension was Eric Russell.",[33,159,160],{},"Significant updates, features, and fixes were added by James Hovet in 2020 and 2021.",[33,162,163,164,169,170,175],{},"The GIS extension makes use of several open-source software\nlibraries. For copyright and license information on those, see the\n",[16,165,168],{"href":166,"rel":167},"http://ccl.northwestern.edu/netlogo/docs/copyright.html",[62],"copyright"," section of the manual. The\nextension also contains elements borrowed from ",[16,171,174],{"href":172,"target":173},"https://myworldgis.org","_blank","My World GIS",".",[33,177,178],{},"This documentation and the example NetLogo models are in the public\ndomain. The GIS extension itself is free and open source software.\nSee the README.md file in the extension/gis directory for details.",[33,180,181,182,186,187],{},"We would love to hear your suggestions on how to improve the GIS\nextension, or just about what you’re using it for. Post questions\nand comments at the\n",[16,183,185],{"href":184,"target":173},"https://groups.google.com/d/forum/netlogo-users","NetLogo Users Group",", or write directly to Eric Russell and the NetLogo team at\n",[16,188,190],{"href":189},"mailto:ccl-gis@ccl.northwestern.edu","ccl-gis@ccl.northwestern.edu",[23,192,195],{"id":193,"className":194},"primitives",[14],[16,196,199],{"className":197,"href":198},[19],"#primitives","Primitives",[33,201,202,203,175],{},"Looking for the primitive reference for the GIS extension? You can find ",[16,204,206],{"href":205},"/gis/dictionary","the full reference here",[40,208,211],{"id":209,"className":210},"coordinate-system-primitives",[14],[16,212,215],{"className":213,"href":214},[19],"#coordinate-system-primitives","Coordinate System Primitives",[217,218,220,221,228,229,235,236,228,243,235,246,228,253,235,256,228,263,235,266,228,273,235,276,228,283,235,286,228,293,235,296,228,303,235,306,228,313,235,316,228,323,235,326],"div",{"id":219},"coord","\n  ",[16,222,225],{"className":223,"href":224},[131],"#set-transformation",[131,226,227],{},"gis:set-transformation","\n   ",[230,231,234],"span",{"className":232},[233],"font-bold"," · "," \n  ",[16,237,240],{"className":238,"href":239},[131],"#set-transformation-ds",[131,241,242],{},"gis:set-transformation-ds",[230,244,234],{"className":245},[233],[16,247,250],{"className":248,"href":249},[131],"#set-world-envelope",[131,251,252],{},"gis:set-world-envelope",[230,254,234],{"className":255},[233],[16,257,260],{"className":258,"href":259},[131],"#set-world-envelope-ds",[131,261,262],{},"gis:set-world-envelope-ds",[230,264,234],{"className":265},[233],[16,267,270],{"className":268,"href":269},[131],"#world-envelope",[131,271,272],{},"gis:world-envelope",[230,274,234],{"className":275},[233],[16,277,280],{"className":278,"href":279},[131],"#envelope-of",[131,281,282],{},"gis:envelope-of",[230,284,234],{"className":285},[233],[16,287,290],{"className":288,"href":289},[131],"#envelope-union-of",[131,291,292],{},"gis:envelope-union-of",[230,294,234],{"className":295},[233],[16,297,300],{"className":298,"href":299},[131],"#load-coordinate-system",[131,301,302],{},"gis:load-coordinate-system",[230,304,234],{"className":305},[233],[16,307,310],{"className":308,"href":309},[131],"#set-coordinate-system",[131,311,312],{},"gis:set-coordinate-system",[230,314,234],{"className":315},[233],[16,317,320],{"className":318,"href":319},[131],"#project-lat-lon",[131,321,322],{},"gis:project-lat-lon",[230,324,234],{"className":325},[233],[16,327,330],{"className":328,"href":329},[131],"#project-lat-lon-from-ellipsoid",[131,331,332],{},"gis:project-lat-lon-from-ellipsoid",[40,334,337],{"id":335,"className":336},"dataset-primitives",[14],[16,338,341],{"className":339,"href":340},[19],"#dataset-primitives","Dataset Primitives",[217,343,220,345,228,351,235,354,228,360,235,363,228,370,235,373,228,380,235,383,228,390,235,393],{"id":344},"data",[16,346,349],{"className":347,"href":348},[131],"#load-dataset",[131,350,63],{},[230,352,234],{"className":353},[233],[16,355,358],{"className":356,"href":357},[131],"#store-dataset",[131,359,141],{},[230,361,234],{"className":362},[233],[16,364,367],{"className":365,"href":366},[131],"#type-of",[131,368,369],{},"gis:type-of",[230,371,234],{"className":372},[233],[16,374,377],{"className":375,"href":376},[131],"#patch-dataset",[131,378,379],{},"gis:patch-dataset",[230,381,234],{"className":382},[233],[16,384,387],{"className":385,"href":386},[131],"#turtle-dataset",[131,388,389],{},"gis:turtle-dataset",[230,391,234],{"className":392},[233],[16,394,397],{"className":395,"href":396},[131],"#link-dataset",[131,398,399],{},"gis:link-dataset",[40,401,404],{"id":402,"className":403},"vectordataset-primitives",[14],[16,405,408],{"className":406,"href":407},[19],"#vectordataset-primitives","VectorDataset Primitives",[217,410,220,412,228,419,235,422,228,429,235,432,228,439,235,442,228,449,235,452,228,459,235,462,228,468,235,471,228,478,235,481,228,488,235,491,228,498,235,501,228,508,235,511,228,518,235,521,228,528,235,531,228,538,235,541,228,548,235,551,228,558,235,561,228,568,235,571,228,578,235,581,228,587,235,590,228,597,235,600,228,606,235,609,228,616,235,619,228,626,235,629,228,636,235,639,228,646,235,649,228,656,235,659,228,666,235,669,228,676,235,679,228,686,235,689,228,696,235,699,228,706,235,709],{"id":411},"vector",[16,413,416],{"className":414,"href":415},[131],"#shape-type-of",[131,417,418],{},"gis:shape-type-of",[230,420,234],{"className":421},[233],[16,423,426],{"className":424,"href":425},[131],"#property-names",[131,427,428],{},"gis:property-names",[230,430,234],{"className":431},[233],[16,433,436],{"className":434,"href":435},[131],"#feature-list-of",[131,437,438],{},"gis:feature-list-of",[230,440,234],{"className":441},[233],[16,443,446],{"className":444,"href":445},[131],"#vertex-lists-of",[131,447,448],{},"gis:vertex-lists-of",[230,450,234],{"className":451},[233],[16,453,456],{"className":454,"href":455},[131],"#centroid-of",[131,457,458],{},"gis:centroid-of",[230,460,234],{"className":461},[233],[16,463,466],{"className":464,"href":465},[131],"#random-point-inside",[131,467,96],{},[230,469,234],{"className":470},[233],[16,472,475],{"className":473,"href":474},[131],"#location-of",[131,476,477],{},"gis:location-of",[230,479,234],{"className":480},[233],[16,482,485],{"className":483,"href":484},[131],"#set-property-value",[131,486,487],{},"gis:set-property-value",[230,489,234],{"className":490},[233],[16,492,495],{"className":493,"href":494},[131],"#property-value",[131,496,497],{},"gis:property-value",[230,499,234],{"className":500},[233],[16,502,505],{"className":503,"href":504},[131],"#find-features",[131,506,507],{},"gis:find-features",[230,509,234],{"className":510},[233],[16,512,515],{"className":513,"href":514},[131],"#find-one-feature",[131,516,517],{},"gis:find-one-feature",[230,519,234],{"className":520},[233],[16,522,525],{"className":523,"href":524},[131],"#find-less-than",[131,526,527],{},"gis:find-less-than",[230,529,234],{"className":530},[233],[16,532,535],{"className":533,"href":534},[131],"#find-greater-than",[131,536,537],{},"gis:find-greater-than",[230,539,234],{"className":540},[233],[16,542,545],{"className":543,"href":544},[131],"#find-range",[131,546,547],{},"gis:find-range",[230,549,234],{"className":550},[233],[16,552,555],{"className":553,"href":554},[131],"#property-minimum",[131,556,557],{},"gis:property-minimum",[230,559,234],{"className":560},[233],[16,562,565],{"className":563,"href":564},[131],"#property-maximum",[131,566,567],{},"gis:property-maximum",[230,569,234],{"className":570},[233],[16,572,575],{"className":573,"href":574},[131],"#apply-coverage",[131,576,577],{},"gis:apply-coverage",[230,579,234],{"className":580},[233],[16,582,585],{"className":583,"href":584},[131],"#create-turtles-from-points",[131,586,78],{},[230,588,234],{"className":589},[233],[16,591,594],{"className":592,"href":593},[131],"#create-turtles-from-points-manual",[131,595,596],{},"gis:create-turtles-from-points-manual",[230,598,234],{"className":599},[233],[16,601,604],{"className":602,"href":603},[131],"#create-turtles-inside-polygon",[131,605,90],{},[230,607,234],{"className":608},[233],[16,610,613],{"className":611,"href":612},[131],"#create-turtles-inside-polygon-manual",[131,614,615],{},"gis:create-turtles-inside-polygon-manual",[230,617,234],{"className":618},[233],[16,620,623],{"className":621,"href":622},[131],"#coverage-minimum-threshold",[131,624,625],{},"gis:coverage-minimum-threshold",[230,627,234],{"className":628},[233],[16,630,633],{"className":631,"href":632},[131],"#set-coverage-minimum-threshold",[131,634,635],{},"gis:set-coverage-minimum-threshold",[230,637,234],{"className":638},[233],[16,640,643],{"className":641,"href":642},[131],"#coverage-maximum-threshold",[131,644,645],{},"gis:coverage-maximum-threshold",[230,647,234],{"className":648},[233],[16,650,653],{"className":651,"href":652},[131],"#set-coverage-maximum-threshold",[131,654,655],{},"gis:set-coverage-maximum-threshold",[230,657,234],{"className":658},[233],[16,660,663],{"className":661,"href":662},[131],"#intersects",[131,664,665],{},"gis:intersects?",[230,667,234],{"className":668},[233],[16,670,673],{"className":671,"href":672},[131],"#contains",[131,674,675],{},"gis:contains?",[230,677,234],{"className":678},[233],[16,680,683],{"className":681,"href":682},[131],"#contained-by",[131,684,685],{},"gis:contained-by?",[230,687,234],{"className":688},[233],[16,690,693],{"className":691,"href":692},[131],"#have-relationship",[131,694,695],{},"gis:have-relationship?",[230,697,234],{"className":698},[233],[16,700,703],{"className":701,"href":702},[131],"#relationship-of",[131,704,705],{},"gis:relationship-of",[230,707,234],{"className":708},[233],[16,710,713],{"className":711,"href":712},[131],"#intersecting",[131,714,715],{},"gis:intersecting",[40,717,720],{"id":718,"className":719},"rasterdataset-primitives",[14],[16,721,724],{"className":722,"href":723},[19],"#rasterdataset-primitives","RasterDataset Primitives",[217,726,220,728,228,735,235,738,228,745,235,748,228,755,235,758,228,765,235,768,228,775,235,778,228,785,235,788,228,795,235,798,228,805,235,808,228,815,235,818,228,825,235,828,228,835,235,838,228,845,235,848,228,855,235,858],{"id":727},"raster",[16,729,732],{"className":730,"href":731},[131],"#width-of",[131,733,734],{},"gis:width-of",[230,736,234],{"className":737},[233],[16,739,742],{"className":740,"href":741},[131],"#height-of",[131,743,744],{},"gis:height-of",[230,746,234],{"className":747},[233],[16,749,752],{"className":750,"href":751},[131],"#raster-value",[131,753,754],{},"gis:raster-value",[230,756,234],{"className":757},[233],[16,759,762],{"className":760,"href":761},[131],"#set-raster-value",[131,763,764],{},"gis:set-raster-value",[230,766,234],{"className":767},[233],[16,769,772],{"className":770,"href":771},[131],"#minimum-of",[131,773,774],{},"gis:minimum-of",[230,776,234],{"className":777},[233],[16,779,782],{"className":780,"href":781},[131],"#maximum-of",[131,783,784],{},"gis:maximum-of",[230,786,234],{"className":787},[233],[16,789,792],{"className":790,"href":791},[131],"#sampling-method-of",[131,793,794],{},"gis:sampling-method-of",[230,796,234],{"className":797},[233],[16,799,802],{"className":800,"href":801},[131],"#set-sampling-method",[131,803,804],{},"gis:set-sampling-method",[230,806,234],{"className":807},[233],[16,809,812],{"className":810,"href":811},[131],"#raster-sample",[131,813,814],{},"gis:raster-sample",[230,816,234],{"className":817},[233],[16,819,822],{"className":820,"href":821},[131],"#raster-world-envelope",[131,823,824],{},"gis:raster-world-envelope",[230,826,234],{"className":827},[233],[16,829,832],{"className":830,"href":831},[131],"#create-raster",[131,833,834],{},"gis:create-raster",[230,836,234],{"className":837},[233],[16,839,842],{"className":840,"href":841},[131],"#resample",[131,843,844],{},"gis:resample",[230,846,234],{"className":847},[233],[16,849,852],{"className":850,"href":851},[131],"#convolve",[131,853,854],{},"gis:convolve",[230,856,234],{"className":857},[233],[16,859,862],{"className":860,"href":861},[131],"#apply-raster",[131,863,864],{},"gis:apply-raster",[40,866,869],{"id":867,"className":868},"drawing-primitives",[14],[16,870,873],{"className":871,"href":872},[19],"#drawing-primitives","Drawing Primitives",[217,875,220,877,228,884,235,887,228,894,235,897,228,904,235,907,228,914,235,917,228,924,235,927],{"id":876},"drawing",[16,878,881],{"className":879,"href":880},[131],"#drawing-color",[131,882,883],{},"gis:drawing-color",[230,885,234],{"className":886},[233],[16,888,891],{"className":889,"href":890},[131],"#set-drawing-color",[131,892,893],{},"gis:set-drawing-color",[230,895,234],{"className":896},[233],[16,898,901],{"className":899,"href":900},[131],"#draw",[131,902,903],{},"gis:draw",[230,905,234],{"className":906},[233],[16,908,911],{"className":909,"href":910},[131],"#fill",[131,912,913],{},"gis:fill",[230,915,234],{"className":916},[233],[16,918,921],{"className":919,"href":920},[131],"#paint",[131,922,923],{},"gis:paint",[230,925,234],{"className":926},[233],[16,928,931],{"className":929,"href":930},[131],"#import-wms-drawing",[131,932,933],{},"gis:import-wms-drawing",[40,935,938],{"id":936,"className":937},"all-primitives",[14],[16,939,942],{"className":940,"href":941},[19],"#all-primitives","All Primitives",[217,944,220,948,220,954,976,986,1011,1014,1017,1067],{"className":945,"id":947},[946],"dict_entry","set-transformation",[40,949,951,952,220],{"id":950},"gisset-transformation","\n    ",[16,953,227],{"href":224},[955,956,959],"h4",{"id":957,"className":958},"gisset-transformation-gis-envelope-netlogo-envelope",[14],[16,960,951,963,220],{"className":961,"href":962},[19],"#----gisset-transformation-gis-envelope-netlogo-envelope--",[230,964,967,968,972,973],{"className":965},[966],"prim_example","gis:set-transformation ",[969,970,971],"i",{},"gis-envelope"," ",[969,974,975],{},"netlogo-envelope",[33,977,978,979,982,983,985],{},"Defines a mapping between GIS coordinates and NetLogo coordinates.\nThe ",[980,981,971],"em",{}," and ",[980,984,975],{}," parameters must\neach be four-element lists consisting of:",[987,988,989],"pre",{},[131,990,991,992,972,998,972,1002,972,1006,1010],{},"[",[230,993,997],{"className":994},[995,996],"token","variable","minimum-x",[230,999,1001],{"className":1000},[995,996],"maximum-x",[230,1003,1005],{"className":1004},[995,996],"minimum-y",[230,1007,1009],{"className":1008},[995,996],"maximum-y","]",[33,1012,1013],{},"The scale of the transformation will be equal to the minimum of the\nscale necessary to make the mapping between the ranges of x values\nand the scale necessary to make the mapping between the ranges of y\nvalues. The GIS space will be centered in NetLogo space.",[33,1015,1016],{},"For example, the following two lists would map all of geographic\n(latitude and longitude) space in degrees to NetLogo world space,\nregardless of the current dimensions of the NetLogo world:",[987,1018,1019],{},[131,1020,1021,1022,972,1027,972,1032,972,1036,972,1040,1044,1045,1021,1048,972,1051,972,1055,972,1059,972,1063,1044],{},"(",[230,1023,1026],{"className":1024},[995,1025],"reporter","list",[230,1028,1031],{"className":1029},[995,1030],"number","-180",[230,1033,1035],{"className":1034},[995,1030],"180",[230,1037,1039],{"className":1038},[995,1030],"-90",[230,1041,1043],{"className":1042},[995,1030],"90",")",[1046,1047],"br",{},[230,1049,1026],{"className":1050},[995,1025],[230,1052,1054],{"className":1053},[995,1025],"min-pxcor",[230,1056,1058],{"className":1057},[995,1025],"max-pxcor",[230,1060,1062],{"className":1061},[995,1025],"min-pycor",[230,1064,1066],{"className":1065},[995,1025],"max-pycor",[33,1068,1069,1070,175],{},"However, if you’re setting the envelope of the NetLogo world,\nyou should probably be using ",[1071,1072,1073],"primitive",{"displayText":252,"permalink":12},[16,1074,252],{"href":1075,"rel":1076,"className":1078,"dataDisplayText":252,"target":1080,"title":252},"/gis#set-world-envelope",[1077],"noopener",[1079],"netlogo-wiki-link","_self",[217,1082,220,1085,220,1090,1106,1112,1120],{"className":1083,"id":1084},[946],"set-transformation-ds",[40,1086,951,1088,220],{"id":1087},"gisset-transformation-ds",[16,1089,242],{"href":239},[955,1091,1094],{"id":1092,"className":1093},"gisset-transformation-ds-gis-envelope-netlogo-envelope",[14],[16,1095,951,1098,220],{"className":1096,"href":1097},[19],"#----gisset-transformation-ds-gis-envelope-netlogo-envelope--",[230,1099,1101,1102,972,1104],{"className":1100},[966],"gis:set-transformation-ds ",[969,1103,971],{},[969,1105,975],{},[33,1107,1108,1109,1111],{},"Does the same thing as ",[16,1110,947],{"href":224}," above, except that\nit allows the scale for mapping the range of x values to be\ndifferent than the scale for y values. The “-ds” on the\nend stands for “different scales”. Using different scales\nwill cause distortion of the shape of GIS features, and so it is\ngenerally not recommended, but it may be useful for some models.",[33,1113,1114,1115,982,1117,1119],{},"Here is an example of the difference between ",[16,1116,947],{"href":224},[16,1118,1084],{"href":239},":",[217,1121,1124],{"className":1122},[1123],"table-container",[1125,1126,1131],"table",{"width":1127,"border":1128,"rules":1129,"style":1130},"80%",1,"cols","border-collaps: separate; border-spacing: 4px; text-align: center; margin: 0 auto;",[1132,1133,1134,1156],"tbody",{},[1135,1136,220,1137,1150],"tr",{},[1138,1139,951,1141,220],"td",{"style":1140},"padding: 8px",[1142,1143],"img",{"alt":1144,"src":1145,"width":1146,"height":1147,"style":1148},"","/_content/images/set-transformation.png",200,292,{"aspectRatio":1149},"484/292",[1138,1151,951,1152,220],{"style":1140},[1142,1153],{"alt":1144,"src":1154,"width":1146,"height":1147,"style":1155},"/_content/images/set-transformation-ds.png",{"aspectRatio":1149},[1135,1157,220,1158,1167],{},[1138,1159,1161,220],{"style":1160},"padding: 8px; white-space: pre;",[33,1162,1163,1164,1166],{},"Using ",[16,1165,947],{"href":224},",\nthe scale along the x and y axis is the same, preserving the\nround shape of the Earth in this Orthographic projection.",[1138,1168,1169],{"style":1160},[33,1170,1163,1171,1173],{},[16,1172,1084],{"href":239},", the\nscale along the x axis is stretched so that the earth covers\nthe entire NetLogo View, which in this case distorts the shape\nof the Earth.",[217,1175,220,1178,220,1183,1197,1200,1226],{"className":1176,"id":1177},[946],"set-world-envelope",[40,1179,951,1181,220],{"id":1180},"gisset-world-envelope",[16,1182,252],{"href":249},[955,1184,1187],{"id":1185,"className":1186},"gisset-world-envelope-gis-envelope",[14],[16,1188,951,1191,220],{"className":1189,"href":1190},[19],"#----gisset-world-envelope-gis-envelope--",[230,1192,1194,1195],{"className":1193},[966],"gis:set-world-envelope ",[969,1196,971],{},[33,1198,1199],{},"A shorthand for setting the transformation by mapping the envelope\nof the NetLogo world to the given envelope in GIS space, while\nkeeping the scales along the x and y axis the same. It is\nequivalent to:",[987,1201,1202],{},[131,1203,1204,972,1207,1210,1211,972,1214,972,1217,972,1220,972,1223,1044],{},[230,1205,947],{"className":1206},[995,996],[230,1208,971],{"className":1209},[995,996]," (",[230,1212,1026],{"className":1213},[995,1025],[230,1215,1054],{"className":1216},[995,1025],[230,1218,1058],{"className":1219},[995,1025],[230,1221,1062],{"className":1222},[995,1025],[230,1224,1066],{"className":1225},[995,1025],[33,1227,1228],{},"This primitive is supplied because most of the time you’ll want\nto set the envelope of the entire NetLogo world, rather than just a\npart of it.",[217,1230,220,1233,220,1238,1252,1255,1280],{"className":1231,"id":1232},[946],"set-world-envelope-ds",[40,1234,951,1236,220],{"id":1235},"gisset-world-envelope-ds",[16,1237,262],{"href":259},[955,1239,1242],{"id":1240,"className":1241},"gisset-world-envelope-ds-gis-envelope",[14],[16,1243,951,1246,220],{"className":1244,"href":1245},[19],"#----gisset-world-envelope-ds-gis-envelope--",[230,1247,1249,1250],{"className":1248},[966],"gis:set-world-envelope-ds ",[969,1251,971],{},[33,1253,1254],{},"A shorthand for setting the transformation by mapping the envelope\nof the NetLogo world to the given envelope in GIS space, using\ndifferent scales along the x and y axis if necessary. It is\nequivalent to:",[987,1256,1257],{},[131,1258,1259,972,1262,1210,1265,972,1268,972,1271,972,1274,972,1277,1044],{},[230,1260,1084],{"className":1261},[995,996],[230,1263,971],{"className":1264},[995,996],[230,1266,1026],{"className":1267},[995,1025],[230,1269,1054],{"className":1270},[995,1025],[230,1272,1058],{"className":1273},[995,1025],[230,1275,1062],{"className":1276},[995,1025],[230,1278,1066],{"className":1279},[995,1025],[33,1281,1282,1283,1287],{},"See the ",[16,1284,1286],{"href":1285},"#transformation-example","pictures"," above for\nthe difference between using equal scales for x and y coordinates\nand using different scales.",[217,1289,220,1292,220,1297,1308,1311],{"className":1290,"id":1291},[946],"world-envelope",[40,1293,951,1295,220],{"id":1294},"gisworld-envelope",[16,1296,272],{"href":269},[955,1298,1301],{"id":1299,"className":1300},"gisworld-envelope-1",[14],[16,1302,951,1305,220],{"className":1303,"href":1304},[19],"#----gisworld-envelope---1",[230,1306,272],{"className":1307},[966],[33,1309,1310],{},"Reports the envelope (bounding rectangle) of the NetLogo world,\ntransformed into GIS space. An envelope consists of a four-element\nlist of the form:",[987,1312,1313],{},[131,1314,991,1315,972,1318,972,1321,972,1324,1010],{},[230,1316,997],{"className":1317},[995,996],[230,1319,1001],{"className":1320},[995,996],[230,1322,1005],{"className":1323},[995,996],[230,1325,1009],{"className":1326},[995,996],[217,1328,220,1331,220,1336,1351,1360],{"className":1329,"id":1330},[946],"envelope-of",[40,1332,951,1334,220],{"id":1333},"gisenvelope-of",[16,1335,282],{"href":279},[955,1337,1340],{"id":1338,"className":1339},"gisenvelope-of-thing",[14],[16,1341,951,1344,220],{"className":1342,"href":1343},[19],"#----gisenvelope-of-thing--",[230,1345,1347,1348],{"className":1346},[966],"gis:envelope-of ",[969,1349,1350],{},"thing",[33,1352,1353,1354,1356,1357,1359],{},"Reports the envelope (bounding rectangle) of ",[980,1355,1350],{}," in GIS\ncoordinates. The ",[980,1358,1350],{}," may be an Agent, an AgentSet, a\nRasterDataset, a VectorDataset, or a VectorFeature. An envelope\nconsists of a four-element list of the form:",[987,1361,1362],{},[131,1363,991,1364,972,1367,972,1370,972,1373,1010],{},[230,1365,997],{"className":1366},[995,996],[230,1368,1001],{"className":1369},[995,996],[230,1371,1005],{"className":1372},[995,996],[230,1374,1009],{"className":1375},[995,996],[217,1377,220,1380,220,1385,1409,1412,1428],{"className":1378,"id":1379},[946],"envelope-union-of",[40,1381,951,1383,220],{"id":1382},"gisenvelope-union-of",[16,1384,292],{"href":289},[955,1386,1389],{"id":1387,"className":1388},"gisenvelope-union-of-envelope1-envelope2-gisenvelope-union-of-envelope1",[14],[16,1390,951,1393,951,1403,220],{"className":1391,"href":1392},[19],"#----gisenvelope-union-of-envelope1-envelope2----gisenvelope-union-of-envelope1--",[230,1394,1396,1397,972,1400],{"className":1395},[966],"gis:envelope-union-of ",[969,1398,1399],{},"envelope1",[969,1401,1402],{},"envelope2",[230,1404,1396,1406],{"className":1405},[966],[969,1407,1408],{},"envelope1...",[33,1410,1411],{},"Reports an envelope (bounding rectangle) that entirely contains the\ngiven envelopes. An envelope consists of a four-element list of the\nform",[987,1413,1414],{},[131,1415,991,1416,972,1419,972,1422,972,1425,1010],{},[230,1417,997],{"className":1418},[995,996],[230,1420,1001],{"className":1421},[995,996],[230,1423,1005],{"className":1424},[995,996],[230,1426,1009],{"className":1427},[995,996],[33,1429,1430],{},"No assumption is made about the coordinate system of the arguments,\nthough if they are not in the same coordinate system, results will\nbe unpredictable.",[217,1432,220,1435,220,1440,1455,1463,1466,1469,1480,1532],{"className":1433,"id":1434},[946],"load-coordinate-system",[40,1436,951,1438,220],{"id":1437},"gisload-coordinate-system",[16,1439,302],{"href":299},[955,1441,1444],{"id":1442,"className":1443},"gisload-coordinate-system-file",[14],[16,1445,951,1448,220],{"className":1446,"href":1447},[19],"#----gisload-coordinate-system-file--",[230,1449,1451,1452],{"className":1450},[966],"gis:load-coordinate-system ",[969,1453,1454],{},"file",[33,1456,1457,1458,1462],{},"Loads a new global projection used for projecting or re- projecting\nGIS data as it is loaded from a file. The file must contain a valid\n",[16,1459,1461],{"href":1460,"target":173},"https://www.geoapi.org/3.0/javadoc/org/opengis/referencing/doc-files/WKT.html","\nWell-Known Text (WKT)"," projection description.",[33,1464,1465],{},"WKT projection files are frequently distributed alongside GIS data\nfiles, and usually have a “.prj” filename extension.",[33,1467,1468],{},"Relative paths are resolved relative to the location of the current\nmodel, or the user’s home directory if the current model\nhasn’t been saved yet.",[33,1470,1471,1472,1475,1476,1479],{},"The GIS extension does not support all WKT coordinate systems and\nprojections. Only geographic (",[131,1473,1474],{},"\"GEOGCS\"",") and\nprojected (",[131,1477,1478],{},"\"PROJCS\"",") coordinate systems are\nsupported. For projected coordinate systems, only the following\nprojections are supported:",[1481,1482,1483,1487,1490,1493,1496,1499,1502,1505,1508,1511,1514,1517,1520,1523,1526,1529],"ul",{},[1484,1485,1486],"li",{},"Albers_Conic_Equal_Area",[1484,1488,1489],{},"Lambert_Conformal_Conic_2SP",[1484,1491,1492],{},"Polyconic",[1484,1494,1495],{},"Lambert_Azimuthal_Equal_Area",[1484,1497,1498],{},"Mercator_1SP",[1484,1500,1501],{},"Robinson",[1484,1503,1504],{},"Azimuthal_Equidistant",[1484,1506,1507],{},"Miller",[1484,1509,1510],{},"Stereographic",[1484,1512,1513],{},"Cylindrical_Equal_Area",[1484,1515,1516],{},"Oblique_Mercator",[1484,1518,1519],{},"Transverse_Mercator",[1484,1521,1522],{},"Equidistant_Conic",[1484,1524,1525],{},"hotine_oblique_mercator",[1484,1527,1528],{},"Gnomonic",[1484,1530,1531],{},"Orthographic",[33,1533,1534,1535,1539],{},"See ",[16,1536,1538],{"href":1537,"target":173},"http://remotesensing.org/geotiff/proj_list/","remotesensing.org","\nfor a complete list of WKT projections and their parameters.",[217,1541,220,1544,220,1549,1564,1575],{"className":1542,"id":1543},[946],"set-coordinate-system",[40,1545,951,1547,220],{"id":1546},"gisset-coordinate-system",[16,1548,312],{"href":309},[955,1550,1553],{"id":1551,"className":1552},"gisset-coordinate-system-system",[14],[16,1554,951,1557,220],{"className":1555,"href":1556},[19],"#----gisset-coordinate-system-system--",[230,1558,1560,1561],{"className":1559},[966],"gis:set-coordinate-system ",[969,1562,1563],{},"system",[33,1565,1566,1567,1569,1570,1574],{},"Sets the global projection used for projecting or re- projecting\nGIS data as it is loaded. The ",[980,1568,1563],{}," must be either a string\nin ",[16,1571,1573],{"href":1572,"target":173},"http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/doc-files/WKT.html","\nWell-Known Text (WKT) format",", or a NetLogo list that consists\nof WKT converted to a list by moving each keyword inside its\nassociated brackets and putting quotes around it. The latter is\npreferred because it makes the code much more readable.",[33,1576,1577,1578],{},"The same limitations on WKT support apply as described above in the\ndocumentation for ",[16,1579,1434],{"href":299},[217,1581,220,1584,220,1589,1607,1610,1632,1695],{"className":1582,"id":1583},[946],"project-lat-lon",[40,1585,951,1587,220],{"id":1586},"gisproject-lat-lon",[16,1588,322],{"href":319},[955,1590,1593],{"id":1591,"className":1592},"gisproject-lat-lon-latitude-longitude",[14],[16,1594,951,1597,220],{"className":1595,"href":1596},[19],"#----gisproject-lat-lon-latitude-longitude--",[230,1598,1600,1601,972,1604],{"className":1599},[966],"gis:project-lat-lon ",[969,1602,1603],{},"latitude",[969,1605,1606],{},"longitude",[33,1608,1609],{},"Report the position, in NetLogo space, of the given latitude\nand longitude pair according to the current map projection and\ntransformation.",[33,1611,1612,1613,1620,1621,1631],{},"Like the ",[1071,1614,1615],{"displayText":477,"permalink":12},[16,1616,477],{"href":1617,"rel":1618,"className":1619,"dataDisplayText":477,"target":1080,"title":477},"/gis#location-of",[1077],[1079]," primitive, the reported xcor and ycor\nvalues are reported in a two-item list of ",[131,1622,991,1623,972,1627,1010],{},[230,1624,1626],{"className":1625},[995,1025],"xcor",[230,1628,1630],{"className":1629},[995,1025],"ycor","\nand an empty list if the specified point is outside of\nthe bounds of the netlogo world.\nFor instance:",[987,1633,1634],{},[131,1635,1636,972,1641,972,1645,972,1648,972,1652,1656,1658,972,1661,972,1665,972,1669,972,1673,1676,1678,972,1681,972,1685,972,1688,972,1692],{},[230,1637,1640],{"className":1638},[995,1639],"command","let",[230,1642,1644],{"className":1643},[995,996],"location-of-abbey-road-studios",[230,1646,322],{"className":1647},[995,996],[230,1649,1651],{"className":1650},[995,1030],"51.5320787",[230,1653,1655],{"className":1654},[995,1030],"-0.1802646",[1046,1657],{},[230,1659,1640],{"className":1660},[995,1639],[230,1662,1664],{"className":1663},[995,996],"abbey-road-xcor",[230,1666,1668],{"className":1667},[995,1025],"item",[230,1670,1672],{"className":1671},[995,1030],"0",[230,1674,1644],{"className":1675},[995,996],[1046,1677],{},[230,1679,1640],{"className":1680},[995,1639],[230,1682,1684],{"className":1683},[995,996],"abbey-road-ycor",[230,1686,1668],{"className":1687},[995,1025],[230,1689,1691],{"className":1690},[995,1030],"1",[230,1693,1644],{"className":1694},[995,996],[33,1696,1697,1698,1705],{},"Note that this primitive assumes that the given lat/lon pair\nare relative to the WGS84 datum/ellipsoid. If your\ndata is based on GPS observations or GeoJson files, then your\ndata is already relative to WGS84. If you are unsure about\nwhat datum your data is, then you should probably just assume\nit is WGS84 and use this primitive. However, if you do know\nthat your data is relative to a different datum and that\nextra degree of precision is important to you (if you are,\nsay, comparing values from location-of and project-lat-lon)\nthen you should use ",[1071,1699,1700],{"displayText":332,"permalink":12},[16,1701,332],{"href":1702,"rel":1703,"className":1704,"dataDisplayText":332,"target":1080,"title":332},"/gis#project-lat-lon-from-ellipsoid",[1077],[1079]," and\nspecify the desired datum’s ellipsoid.",[217,1707,220,1710,220,1715,1737,1740,1757,1768,1771,1801],{"className":1708,"id":1709},[946],"project-lat-lon-from-ellipsoid",[40,1711,951,1713,220],{"id":1712},"gisproject-lat-lon-from-ellipsoid",[16,1714,332],{"href":329},[955,1716,1719],{"id":1717,"className":1718},"gisproject-lat-lon-from-ellipsoid-latitude-longitude-ellipsoid-radius-ellipsoid-inverse-flattening",[14],[16,1720,951,1723,220],{"className":1721,"href":1722},[19],"#----gisproject-lat-lon-from-ellipsoid-latitude-longitude-ellipsoid-radius-ellipsoid-inverse-flattening--",[230,1724,1726,1727,972,1729,972,1731,972,1734],{"className":1725},[966],"gis:project-lat-lon-from-ellipsoid ",[969,1728,1603],{},[969,1730,1606],{},[969,1732,1733],{},"ellipsoid-radius",[969,1735,1736],{},"ellipsoid-inverse-flattening",[33,1738,1739],{},"Report the position, in NetLogo space, of the given latitude\nand longitude pair according to the current map projection and\ntransformation and the given ellipsoid parameters.",[33,1741,1612,1742,1620,1748,1756],{},[1071,1743,1744],{"displayText":477,"permalink":12},[16,1745,477],{"href":1617,"rel":1746,"className":1747,"dataDisplayText":477,"target":1080,"title":477},[1077],[1079],[131,1749,991,1750,972,1753,1010],{},[230,1751,1626],{"className":1752},[995,1025],[230,1754,1630],{"className":1755},[995,1025],"\nand an empty list if the specified point is outside of\nthe bounds of the netlogo world.",[33,1758,1759,1760,1763,1764,1767],{},"The two defining parameters of a  ellipsoid for\nthe purposes of this primitive are the radius and the\ninverse flattening metric. These parameters can be\neasily found by examining either the WKT definition\nof a given projection/datum pair or the .prj file for\nthe desired datum. For example, if you open the .prj file\nfor a shapefile exported with the WGS66 datum in a text editor,\nyou will see, somewhere in the file, this bit of text:\n",[131,1761,1762],{},"DATUM[\"D_WGS_1966\",SPHEROID[\"NWL_9D\",6378145,298.25]]",".\nIf you look at the ",[131,1765,1766],{},"SPHEROID"," section of that text, the\nfirst number is the radius of that ellipoid and the\nsecond is the inverse flattening.",[33,1769,1770],{},"Once we have these numbers, we can project data that is\nrelative to WGS66 like so:",[987,1772,1773],{},[131,1774,1775,972,1778,972,1782,972,1785,972,1789,972,1793,972,1797],{},[230,1776,1640],{"className":1777},[995,1639],[230,1779,1781],{"className":1780},[995,996],"location",[230,1783,322],{"className":1784},[995,996],[230,1786,1788],{"className":1787},[995,996],"my-lat",[230,1790,1792],{"className":1791},[995,996],"my-lon",[230,1794,1796],{"className":1795},[995,1030],"6378145",[230,1798,1800],{"className":1799},[995,1030],"298.25",[33,1802,1803,1804],{},"For more on earth ellipoids, see: ",[16,1805,1806],{"href":1806,"rel":1807},"https://en.wikipedia.org/wiki/Earth_ellipsoid",[62],[217,1809,220,1812,220,1817,1831,1834,1836,1847,1850,1853,1895,1898],{"className":1810,"id":1811},[946],"load-dataset",[40,1813,951,1815,220],{"id":1814},"gisload-dataset",[16,1816,63],{"href":348},[955,1818,1821],{"id":1819,"className":1820},"gisload-dataset-file",[14],[16,1822,951,1825,220],{"className":1823,"href":1824},[19],"#----gisload-dataset-file--",[230,1826,1828,1829],{"className":1827},[966],"gis:load-dataset ",[969,1830,1454],{},[33,1832,1833],{},"Loads the given data file, re-projecting the data as necessary.",[33,1835,1468],{},[33,1837,1838,1839,1846],{},"For ESRI shapefiles and ESRI grid files, if there is a “.prj” file\nassociated with the file, then ",[1071,1840,1841],{"displayText":63,"permalink":12},[16,1842,63],{"href":1843,"rel":1844,"className":1845,"dataDisplayText":63,"target":1080,"title":63},"/gis#load-dataset",[1077],[1079]," will consult that file\nand re-project to the current global projection if needed. If no “.prj”\nfile is found, then the data is assumed to use the same projection as\nthe current global coordinate system.",[33,1848,1849],{},"For GeoJSON files, as per the most-recent specification (RFC 7946),\nthe coordinate system for GeoJSON files is always WGS84 and will be\nimported accordingly.",[33,1851,1852],{},"Currently, three types of data file are supported:",[1481,1854,1855,1869,1886],{},[1484,1856,1857,1858,1861,1862,1868],{},"“",[107,1859,1860],{},".shp","” (ESRI shapefile): contains vector data,\nconsisting of points, lines, or polygons. When the target file is a\nshapefile, ",[1071,1863,1864],{"displayText":63,"permalink":12},[16,1865,63],{"href":1843,"rel":1866,"className":1867,"dataDisplayText":63,"target":1080,"title":63},[1077],[1079]," reports a VectorDataset.",[1484,1870,1857,1871,1874,1875,1878,1879,1885],{},[107,1872,1873],{},".asc","” or “",[107,1876,1877],{},".grd","” (ESRI ASCII grid):\ncontains raster data, consisting of a grid of values. When\nthe target file is an ASCII grid file, ",[1071,1880,1881],{"displayText":63,"permalink":12},[16,1882,63],{"href":1843,"rel":1883,"className":1884,"dataDisplayText":63,"target":1080,"title":63},[1077],[1079],"\nreports a RasterDataset.",[1484,1887,1857,1888,1874,1891,1894],{},[107,1889,1890],{},".geojson",[107,1892,1893],{},".json","” (GeoJSON): contains vector data\nsimilar to shapefiles and similarly reports a VectorDataset.",[33,1896,1897],{},"Note that not all aspects of the GeoJSON standard are supported.\nIn particular, to be properly imported, a GeoJSON file must\nsatisfy the following:",[1481,1899,1900,1903,1906],{},[1484,1901,1902],{},"It only contain numeric or string data within the properties.\nall other json data will be stringified.",[1484,1904,1905],{},"All “Features” within a “FeatureCollection” must be of the same\nshape type (“Point”, “LineString”, etc.) Additionally, if not all\nthe “Features” in the “FeatureCollection” have the same set of\nproperty names, default values will be supplied where there\nare missing entries (0 for numbers and \"\" for strings.)",[1484,1907,1908,1909,1916],{},"It must not use “GeometryCollection”, which is not supported\nElevation/Z data is partially supported. For both .geojson and\n.shp files, single points with Z data will have their Z\ncoordinate moved to a new “_Z” property that can be accessed\nwith ",[1071,1910,1911],{"displayText":497,"permalink":12},[16,1912,497],{"href":1913,"rel":1914,"className":1915,"dataDisplayText":497,"target":1080,"title":497},"/gis#property-value",[1077],[1079]," like any other property. Any Z\ninformation for other shape types will be discarded upon import.",[217,1918,220,1921,220,1926,1943,1946,1949,1952],{"className":1919,"id":1920},[946],"store-dataset",[40,1922,951,1924,220],{"id":1923},"gisstore-dataset",[16,1925,141],{"href":357},[955,1927,1930],{"id":1928,"className":1929},"gisstore-dataset-dataset-file",[14],[16,1931,951,1934,220],{"className":1932,"href":1933},[19],"#----gisstore-dataset-dataset-file--",[230,1935,1937,1938,972,1941],{"className":1936},[966],"gis:store-dataset ",[969,1939,1940],{},"dataset",[969,1942,1454],{},[33,1944,1945],{},"Exports the given dataset to the given file.",[33,1947,1948],{},"For VectorDatasets, two file formats are supported, ESRI shapefiles\nand GeoJSON. If the given file name ends in “.geojson” or “.json”,\nthen the file will be exported as a GeoJSON file. If the file name\nends in any other extension or no extension at all, the dataset\nwill be exported as a shapefile and the associated file extensions\nwill be supplied (“.shp”, “.prj”, etc.)",[33,1950,1951],{},"For RasterDatasets, only ESRI ASCII grid files are supported and\nthe associated file extensions will be automatically supplied.",[33,1953,1954],{},"Relative paths are resolved relative to the location of the current\nmodel, or the user’s home directory if the current model hasn’t\nbeen saved yet.",[217,1956,220,1959,220,1964,1978],{"className":1957,"id":1958},[946],"type-of",[40,1960,951,1962,220],{"id":1961},"gistype-of",[16,1963,369],{"href":366},[955,1965,1968],{"id":1966,"className":1967},"gistype-of-dataset",[14],[16,1969,951,1972,220],{"className":1970,"href":1971},[19],"#----gistype-of-dataset--",[230,1973,1975,1976],{"className":1974},[966],"gis:type-of ",[969,1977,1940],{},[33,1979,1980],{},"Reports the type of the given GIS dataset: either “VECTOR” or “RASTER”",[217,1982,220,1985,220,1990,2005],{"className":1983,"id":1984},[946],"patch-dataset",[40,1986,951,1988,220],{"id":1987},"gispatch-dataset",[16,1989,379],{"href":376},[955,1991,1994],{"id":1992,"className":1993},"gispatch-dataset-patch-variable",[14],[16,1995,951,1998,220],{"className":1996,"href":1997},[19],"#----gispatch-dataset-patch-variable--",[230,1999,2001,2002],{"className":2000},[966],"gis:patch-dataset ",[969,2003,2004],{},"patch-variable",[33,2006,2007,2008,2015,2016,2022],{},"Reports a new raster whose cells correspond directly to NetLogo\npatches, and whose cell values consist of the values of the given\npatch variable. This primitive is basically the inverse of ",[1071,2009,2010],{"displayText":864,"permalink":12},[16,2011,864],{"href":2012,"rel":2013,"className":2014,"dataDisplayText":864,"target":1080,"title":864},"/gis#apply-raster",[1077],[1079],".\n",[1071,2017,2018],{"displayText":864,"permalink":12},[16,2019,864],{"href":2012,"rel":2020,"className":2021,"dataDisplayText":864,"target":1080,"title":864},[1077],[1079]," copies values from a raster dataset to a patch variable, while this\nprimitive copies values from a patch variable to a raster dataset.",[217,2024,220,2027,220,2032,2047],{"className":2025,"id":2026},[946],"turtle-dataset",[40,2028,951,2030,220],{"id":2029},"gisturtle-dataset",[16,2031,389],{"href":386},[955,2033,2036],{"id":2034,"className":2035},"gisturtle-dataset-turtle-set",[14],[16,2037,951,2040,220],{"className":2038,"href":2039},[19],"#----gisturtle-dataset-turtle-set--",[230,2041,2043,2044],{"className":2042},[966],"gis:turtle-dataset ",[969,2045,2046],{},"turtle-set",[33,2048,2049],{},"Reports a new, point VectorDataset built from the turtles in the\ngiven agentset. The points are located at locations of the turtles,\ntranslated from NetLogo space into GIS space using the current\ncoordinate transformation. And the dataset’s properties consist\nof all of the turtle variables common to every turtle in the\nagentset.",[217,2051,220,2054,220,2059,2074],{"className":2052,"id":2053},[946],"link-dataset",[40,2055,951,2057,220],{"id":2056},"gislink-dataset",[16,2058,399],{"href":396},[955,2060,2063],{"id":2061,"className":2062},"gislink-dataset-link-set",[14],[16,2064,951,2067,220],{"className":2065,"href":2066},[19],"#----gislink-dataset-link-set--",[230,2068,2070,2071],{"className":2069},[966],"gis:link-dataset ",[969,2072,2073],{},"link-set",[33,2075,2076],{},"Reports a new, line VectorDataset built from the links in the given\nagentset. The endpoints of each line are at the location of the\nturtles connected by each link, translated from NetLogo space into\nGIS space using the current coordinate transformation. And the\ndataset’s properties consist of all of the link variables\ncommon to every link in the agentset.",[217,2078,220,2081,220,2086,2101],{"className":2079,"id":2080},[946],"shape-type-of",[40,2082,951,2084,220],{"id":2083},"gisshape-type-of",[16,2085,418],{"href":415},[955,2087,2090],{"id":2088,"className":2089},"gisshape-type-of-vector-dataset",[14],[16,2091,951,2094,220],{"className":2092,"href":2093},[19],"#----gisshape-type-of-vector-dataset--",[230,2095,2097,2098],{"className":2096},[966],"gis:shape-type-of ",[969,2099,2100],{},"vector-dataset",[33,2102,2103],{},"Reports the shape type of the given dataset. The possible output\nvalues are “POINT”, “LINE”, and “POLYGON”.",[217,2105,220,2108,220,2113,2127],{"className":2106,"id":2107},[946],"property-names",[40,2109,951,2111,220],{"id":2110},"gisproperty-names",[16,2112,428],{"href":425},[955,2114,2117],{"id":2115,"className":2116},"gisproperty-names-vector-dataset",[14],[16,2118,951,2121,220],{"className":2119,"href":2120},[19],"#----gisproperty-names-vector-dataset--",[230,2122,2124,2125],{"className":2123},[966],"gis:property-names ",[969,2126,2100],{},[33,2128,2129,2130,175],{},"Reports a list of strings where each string is the name of a\nproperty possessed by each VectorFeature in the given\nVectorDataset, suitable for use in ",[16,2131,497],{"href":494},[217,2133,220,2136,220,2141,2155],{"className":2134,"id":2135},[946],"feature-list-of",[40,2137,951,2139,220],{"id":2138},"gisfeature-list-of",[16,2140,438],{"href":435},[955,2142,2145],{"id":2143,"className":2144},"gisfeature-list-of-vector-dataset",[14],[16,2146,951,2149,220],{"className":2147,"href":2148},[19],"#----gisfeature-list-of-vector-dataset--",[230,2150,2152,2153],{"className":2151},[966],"gis:feature-list-of ",[969,2154,2100],{},[33,2156,2157],{},"Reports a list of all VectorFeatures in the given dataset.",[217,2159,220,2162,220,2167,2182],{"className":2160,"id":2161},[946],"vertex-lists-of",[40,2163,951,2165,220],{"id":2164},"gisvertex-lists-of",[16,2166,448],{"href":445},[955,2168,2171],{"id":2169,"className":2170},"gisvertex-lists-of-vector-feature",[14],[16,2172,951,2175,220],{"className":2173,"href":2174},[19],"#----gisvertex-lists-of-vector-feature--",[230,2176,2178,2179],{"className":2177},[966],"gis:vertex-lists-of ",[969,2180,2181],{},"vector-feature",[33,2183,2184],{},"Reports a list of lists of Vertex values. For point datasets, each\nvertex list will contain exactly one vertex: the location of a\npoint. For line datasets, each vertex list will contain at least\ntwo points, and will represent a “polyline”, connecting\neach adjacent pair of vertices in the list. For polygon datasets,\neach vertex list will contain at least three points, representing a\npolygon connecting each vertex, and the first and last vertices in\nthe list will be the same.",[217,2186,220,2189,220,2194,2208],{"className":2187,"id":2188},[946],"centroid-of",[40,2190,951,2192,220],{"id":2191},"giscentroid-of",[16,2193,458],{"href":455},[955,2195,2198],{"id":2196,"className":2197},"giscentroid-of-vector-feature",[14],[16,2199,951,2202,220],{"className":2200,"href":2201},[19],"#----giscentroid-of-vector-feature--",[230,2203,2205,2206],{"className":2204},[966],"gis:centroid-of ",[969,2207,2181],{},[33,2209,2210,2211,2215],{},"Reports a single Vertex representing the centroid (center of\ngravity) of the given feature. For point datasets, the centroid is\ndefined as the average location of all points in the feature. For\nline datasets, the centroid is defined as the average of the\nlocations of the midpoints of all line segments in the feature,\nweighted by segment length. For polygon datasets, the centroid is\ndefined as the weighted sum of the centroids of a decomposition of\nthe area into (possibly overlapping) triangles. See ",[16,2212,2214],{"href":2213,"target":173},"http://www.faqs.org/faqs/graphics/algorithms-faq/","this FAQ","\nfor more details on the polygon centroid algorithm.",[217,2217,220,2220,220,2225,2239,2242],{"className":2218,"id":2219},[946],"random-point-inside",[40,2221,951,2223,220],{"id":2222},"gisrandom-point-inside",[16,2224,96],{"href":465},[955,2226,2229],{"id":2227,"className":2228},"gisrandom-point-inside-vector-feature",[14],[16,2230,951,2233,220],{"className":2231,"href":2232},[19],"#----gisrandom-point-inside-vector-feature--",[230,2234,2236,2237],{"className":2235},[966],"gis:random-point-inside ",[969,2238,2181],{},[33,2240,2241],{},"Reports a single randomly-generated Vertex that lies within the\ngiven feature polygon. Generated points are uniformly\ndistributed within the polygon and both polygon holes and\nmulti-polygon features are supported.",[987,2243,2244],{},[131,2245,2246,2251,2253,972,2257,2261,2262,2264,2265,972,2268,972,2272,972,2275,972,2278,2282,2264,2284,972,2288,972,2291,972,2294,972,2297,2300,2264,2302,972,2305,972,2308,972,2311,972,2314,2317,1010],{},[230,2247,2250],{"className":2248},[995,2249],"comment","; create 100 turtles randomly distributed throughout a VectorFeature [[vf]]",[1046,2252],{},[230,2254,2256],{"className":2255},[995,1639],"crt",[230,2258,2260],{"className":2259},[995,1030],"100"," [",[1046,2263],{},"  ",[230,2266,1640],{"className":2267},[995,1639],[230,2269,2271],{"className":2270},[995,996],"loc",[230,2273,477],{"className":2274},[995,996],[230,2276,96],{"className":2277},[995,996],[230,2279,2281],{"className":2280},[995,996],"vf",[1046,2283],{},[230,2285,2287],{"className":2286},[995,1639],"set",[230,2289,1626],{"className":2290},[995,1025],[230,2292,1668],{"className":2293},[995,1025],[230,2295,1672],{"className":2296},[995,1030],[230,2298,2271],{"className":2299},[995,996],[1046,2301],{},[230,2303,2287],{"className":2304},[995,1639],[230,2306,1630],{"className":2307},[995,1025],[230,2309,1668],{"className":2310},[995,1025],[230,2312,1691],{"className":2313},[995,1030],[230,2315,2271],{"className":2316},[995,996],[1046,2318],{},[217,2320,220,2323,220,2328,2343],{"className":2321,"id":2322},[946],"location-of",[40,2324,951,2326,220],{"id":2325},"gislocation-of",[16,2327,477],{"href":474},[955,2329,2332],{"id":2330,"className":2331},"gislocation-of-vertex",[14],[16,2333,951,2336,220],{"className":2334,"href":2335},[19],"#----gislocation-of-vertex--",[230,2337,2339,2340],{"className":2338},[966],"gis:location-of ",[969,2341,2342],{},"vertex",[33,2344,2345],{},"Reports a two-element list containing the x and y values (in that\norder) of the given vertex translated into NetLogo world space\nusing the current transformation, or an empty list if the given\nvertex lies outside the NetLogo world.",[217,2347,220,2350,220,2355,2375],{"className":2348,"id":2349},[946],"set-property-value",[40,2351,951,2353,220],{"id":2352},"gisset-property-value",[16,2354,487],{"href":484},[955,2356,2359],{"id":2357,"className":2358},"gisset-property-value-vector-feature-property-name-value",[14],[16,2360,951,2363,220],{"className":2361,"href":2362},[19],"#----gisset-property-value-vector-feature-property-name-value--",[230,2364,2366,2367,972,2369,972,2372],{"className":2365},[966],"gis:set-property-value ",[969,2368,2181],{},[969,2370,2371],{},"property-name",[969,2373,2374],{},"value",[33,2376,2377],{},"Sets the value of the given property of the given VectorFeature. The\ntype of the given value (string or number) must match the property\ntype of the VectorFeature. This command may be used in conjunction\nwith store-dataset to make changes to VectorFeatures and export\nthem back as GIS datasets.",[217,2379,220,2382,220,2387,2403,2406],{"className":2380,"id":2381},[946],"property-value",[40,2383,951,2385,220],{"id":2384},"gisproperty-value",[16,2386,497],{"href":494},[955,2388,2391],{"id":2389,"className":2390},"gisproperty-value-vector-feature-property-name",[14],[16,2392,951,2395,220],{"className":2393,"href":2394},[19],"#----gisproperty-value-vector-feature-property-name--",[230,2396,2398,2399,972,2401],{"className":2397},[966],"gis:property-value ",[969,2400,2181],{},[969,2402,2371],{},[33,2404,2405],{},"Reports the value of the property with the given name for the given\nVectorDataset. The reported value may be a number, a string, or a\nboolean value, depending on the type of the field in the underlying\ndata file.",[33,2407,2408,2409,134,2412,2415,2416,982,2419,2422,2423,2426,2427,2430,2431,2433,2434,2437],{},"For shapefiles, values from dBase ",[131,2410,2411],{},"CHARACTER",[131,2413,2414],{},"DATE"," fields are returned as strings, values from\n",[131,2417,2418],{},"NUMBER",[131,2420,2421],{},"FLOAT"," fields are returned as numbers,\nand values from ",[131,2424,2425],{},"LOGICAL"," fields are returned as boolean\nvalues. ",[131,2428,2429],{},"MEMO"," fields are not supported. ",[131,2432,2414],{},"\nvalues are converted to strings using ISO 8601 format\n(",[131,2435,2436],{},"YYYY-MM-DD",").",[217,2439,220,2442,220,2447,2466,2475,2478],{"className":2440,"id":2441},[946],"find-features",[40,2443,951,2445,220],{"id":2444},"gisfind-features",[16,2446,507],{"href":504},[955,2448,2451],{"id":2449,"className":2450},"gisfind-features-vector-dataset-property-name-specified-value",[14],[16,2452,951,2455,220],{"className":2453,"href":2454},[19],"#----gisfind-features-vector-dataset-property-name-specified-value--",[230,2456,2458,2459,972,2461,972,2463],{"className":2457},[966],"gis:find-features ",[969,2460,2100],{},[969,2462,2371],{},[969,2464,2465],{},"specified-value",[33,2467,2468,2469,2471,2472,2474],{},"Reports a list of all VectorFeatures in the given dataset\nwhose value for the property ",[980,2470,2371],{}," matches\n",[980,2473,2465],{}," (a string or number).",[33,2476,2477],{},"For strings, value comparison is not case sensitive, and the\nwildcard character ”*” will match any number of occurrences\n(including zero) of any character.",[33,2479,2480],{},"For numbers, beware that there are some numbers that are too\nbig to be represented as an integer in NetLogo, so integer\ndata imported into NetLogo may start to lose precision\nif they are larger than around 10^14.",[217,2482,220,2485,220,2490,2508,2518,2521],{"className":2483,"id":2484},[946],"find-one-feature",[40,2486,951,2488,220],{"id":2487},"gisfind-one-feature",[16,2489,517],{"href":514},[955,2491,2494],{"id":2492,"className":2493},"gisfind-one-feature-vector-dataset-property-name-specified-value",[14],[16,2495,951,2498,220],{"className":2496,"href":2497},[19],"#----gisfind-one-feature-vector-dataset-property-name-specified-value--",[230,2499,2501,2502,972,2504,972,2506],{"className":2500},[966],"gis:find-one-feature ",[969,2503,2100],{},[969,2505,2371],{},[969,2507,2465],{},[33,2509,2510,2511,2513,2514,2517],{},"Reports the first VectorFeature in the dataset whose value\nfor the property ",[980,2512,2371],{}," matches the given string or\nnumber.  Reports ",[131,2515,2516],{},"nobody"," if no matching VectorFeature is\nfound.",[33,2519,2520],{},"For strings, Value comparison is not case sensitive, and the\nwildcard character ”*” will match any number of occurrences\n(including zero) of any character.  Features are searched in\nthe order that they appear in the data file that was the\nsource of the dataset, and searching stops as soon as a\nmatch is found.",[33,2522,2523],{},"For numbers, beware that there are some numbers that are too\nbig to be represented as an integer in NetLogo, so if you\nwant to be able to identify features based on a unique ID,\nkeep the IDs you use on the relatively small side to play it\nsafe. Any number that can fit into a 32 bit unsigned integer\nwill work, but any larger than 10^14 and you could run into\nissues. (Helpfully, the NetLogo app will warn you if you try\nto type one of these too-large numbers into the editor if\nyou want to check.)",[217,2525,220,2528,220,2533,2551],{"className":2526,"id":2527},[946],"find-less-than",[40,2529,951,2531,220],{"id":2530},"gisfind-less-than",[16,2532,527],{"href":524},[955,2534,2537],{"id":2535,"className":2536},"gisfind-less-than-vector-dataset-property-name-value",[14],[16,2538,951,2541,220],{"className":2539,"href":2540},[19],"#----gisfind-less-than-vector-dataset-property-name-value--",[230,2542,2544,2545,972,2547,972,2549],{"className":2543},[966],"gis:find-less-than ",[969,2546,2100],{},[969,2548,2371],{},[969,2550,2374],{},[33,2552,2553,2554,2556,2557,2559,2560,2564],{},"Reports a list of all VectorFeatures in the given dataset whose\nvalue for the property ",[980,2555,2371],{}," is less than the given\n",[980,2558,2374],{},". String values are compared using case-sensitive\nlexicographic order as defined in the ",[16,2561,2563],{"href":2562,"target":173},"http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/String.html#compareTo(java.lang.String)","\nJava Documentation",". Using a string value for a numeric property\nor a numeric value for a string property will cause an error.",[217,2566,220,2569,220,2574,2592],{"className":2567,"id":2568},[946],"find-greater-than",[40,2570,951,2572,220],{"id":2571},"gisfind-greater-than",[16,2573,537],{"href":534},[955,2575,2578],{"id":2576,"className":2577},"gisfind-greater-than-vector-dataset-property-name-value",[14],[16,2579,951,2582,220],{"className":2580,"href":2581},[19],"#----gisfind-greater-than-vector-dataset-property-name-value--",[230,2583,2585,2586,972,2588,972,2590],{"className":2584},[966],"gis:find-greater-than ",[969,2587,2100],{},[969,2589,2371],{},[969,2591,2374],{},[33,2593,2553,2594,2596,2597,2559,2599,2564],{},[980,2595,2371],{}," is greater than the\ngiven ",[980,2598,2374],{},[16,2600,2563],{"href":2562,"target":173},[217,2602,220,2605,220,2610,2632],{"className":2603,"id":2604},[946],"find-range",[40,2606,951,2608,220],{"id":2607},"gisfind-range",[16,2609,547],{"href":544},[955,2611,2614],{"id":2612,"className":2613},"gisfind-range-vector-dataset-property-name-minimum-value-maximum-value",[14],[16,2615,951,2618,220],{"className":2616,"href":2617},[19],"#----gisfind-range-vector-dataset-property-name-minimum-value-maximum-value--",[230,2619,2621,2622,972,2624,972,2626,972,2629],{"className":2620},[966],"gis:find-range ",[969,2623,2100],{},[969,2625,2371],{},[969,2627,2628],{},"minimum-value",[969,2630,2631],{},"maximum-value",[33,2633,2553,2634,2636,2637,2639,2640,2642,2643,2564],{},[980,2635,2371],{}," is strictly greater\nthan ",[980,2638,2628],{}," and strictly less than\n",[980,2641,2631],{},". String values are compared using\ncase-sensitive lexicographic order as defined in the ",[16,2644,2563],{"href":2562,"target":173},[217,2646,220,2649,220,2654,2670],{"className":2647,"id":2648},[946],"property-minimum",[40,2650,951,2652,220],{"id":2651},"gisproperty-minimum",[16,2653,557],{"href":554},[955,2655,2658],{"id":2656,"className":2657},"gisproperty-minimum-vector-dataset-property-name",[14],[16,2659,951,2662,220],{"className":2660,"href":2661},[19],"#----gisproperty-minimum-vector-dataset-property-name--",[230,2663,2665,2666,972,2668],{"className":2664},[966],"gis:property-minimum ",[969,2667,2100],{},[969,2669,2371],{},[33,2671,2672,2673,175],{},"Reports the smallest value for the given property over all of the\nVectorFeatures in the given dataset. String values are compared\nusing case-sensitive lexicographic order as defined in the ",[16,2674,2563],{"href":2562,"target":173},[217,2676,220,2679,220,2684,2700],{"className":2677,"id":2678},[946],"property-maximum",[40,2680,951,2682,220],{"id":2681},"gisproperty-maximum",[16,2683,567],{"href":564},[955,2685,2688],{"id":2686,"className":2687},"gisproperty-maximum-vector-dataset-property-name",[14],[16,2689,951,2692,220],{"className":2690,"href":2691},[19],"#----gisproperty-maximum-vector-dataset-property-name--",[230,2693,2695,2696,972,2698],{"className":2694},[966],"gis:property-maximum ",[969,2697,2100],{},[969,2699,2371],{},[33,2701,2702,2703,175],{},"Reports the largest value for the given property over all of the\nVectorFeatures in the given dataset. String values are compared\nusing case-sensitive lexicographic order as defined in the ",[16,2704,2563],{"href":2562,"target":173},[217,2706,220,2709,220,2714,2732,2739,2742,2745,2753],{"className":2707,"id":2708},[946],"apply-coverage",[40,2710,951,2712,220],{"id":2711},"gisapply-coverage",[16,2713,577],{"href":574},[955,2715,2718],{"id":2716,"className":2717},"gisapply-coverage-vector-dataset-property-name-patch-variable",[14],[16,2719,951,2722,220],{"className":2720,"href":2721},[19],"#----gisapply-coverage-vector-dataset-property-name-patch-variable--",[230,2723,2725,2726,972,2728,972,2730],{"className":2724},[966],"gis:apply-coverage ",[969,2727,2100],{},[969,2729,2371],{},[969,2731,2004],{},[33,2733,2734,2735,2738],{},"Copies values from the given property of the VectorDataset’s\nfeatures to the given patch variable. The dataset must be a\n",[131,2736,2737],{},"polygon"," dataset; points and lines are not supported.",[33,2740,2741],{},"For each patch, it finds all VectorFeatures that intersect that\npatch. Then, if the property is a string property, it computes the\nmajority value by computing the total area of the patch covered by\nVectorFeatures having each possible value of the property, then\nreturning the value which represents the largest proportion of the\npatch area. If the property is a numeric property, it computes a\nweighted average of property values from all VectorFeatures which\nintersect the patch, weighted by the proportion of the patch area\nthey cover.",[33,2743,2744],{},"There are two exceptions to this default behavior:",[1481,2746,2747,2750],{},[1484,2748,2749],{},"If a percentage of a patches’ area greater than the\ncoverage-maximum-threshold is covered by a single VectorFeature,\nthen the property value from that VectorFeature is copied directly.\nIf more than one VectorFeature covers a percentage of area greater\nthan the threshold, only the first will be used.",[1484,2751,2752],{},"If the total percentage of a patches’ area covered by\nVectorFeatures is less than the coverage-minimum-threshold, the\ntarget patch variable is set to Not A Number.",[33,2754,2755],{},"By default, the minimum threshold is 10% and the maximum threshold\nis 33%. These values may be modified using the four primitives that\nfollow.",[217,2757,220,2760,220,2765,2785,2796,2815,2818,2821,2824],{"className":2758,"id":2759},[946],"create-turtles-from-points",[40,2761,951,2763,220],{"id":2762},"giscreate-turtles-from-points",[16,2764,78],{"href":584},[955,2766,2769],{"id":2767,"className":2768},"giscreate-turtles-from-points-vector-dataset-breed-commands",[14],[16,2770,951,2773,220],{"className":2771,"href":2772},[19],"#----giscreate-turtles-from-points-vector-dataset-breed-commands--",[230,2774,2776,2777,972,2779,972,2782],{"className":2775},[966],"gis:create-turtles-from-points ",[969,2778,2100],{},[969,2780,2781],{},"breed",[969,2783,2784],{},"commands",[33,2786,2787,2788,2791,2792,2795],{},"For each point in a VectorDataset of points, create a turtle of\nthe specified breed at the point’s location. For each agent variable\n(as defined in ",[131,2789,2790],{},"\u003Cbreeds>-own","), if there is a property with the same\nname in the dataset, set that variable’s value to be the value of\nthat property. Finally, execute any commands in the optional\ncommand block. To use generic turtles as the chosen breed, simply\nsupply ",[131,2793,2794],{},"turtles"," as the breed argument.",[33,2797,2798,2799,2806,2807,142],{},"Property names and variable names are compared case-insensitively.\nKeep in mind that when importing shapefiles, property names may be\nmodified for backwards compatibility reasons. The names given\nby ",[1071,2800,2801],{"displayText":428,"permalink":12},[16,2802,428],{"href":2803,"rel":2804,"className":2805,"dataDisplayText":428,"target":1080,"title":428},"/gis#property-names",[1077],[1079]," can always be trusted as authoritative. For\nmanually specifying a mapping between property names and variable\nnames, see the ",[1071,2808,2810],{"displayText":2809,"permalink":12},"create-turtles-from-points-manual",[16,2811,2809],{"href":2812,"rel":2813,"className":2814,"dataDisplayText":2809,"target":1080,"title":2809},"/gis#create-turtles-from-points-manual",[1077],[1079],[33,2816,2817],{},"For multi-point datasets, a turtle is created at each point of\nmulti-point feature, each with the same set of variable values.",[33,2819,2820],{},"Built-in variables such as “label” and “heading” are supported.\nNetLogo color numeric representations are supported for setting\n“color” and “label-color”, as well as the 15 default color string\nrepresentations (“red”, “blue”, “black”, etc.).",[33,2822,2823],{},"As an example: say you wanted to create a turtle of breed\n“cities/city” for each city in a dataset of cities\nlike the one included in the “GIS General Examples” model from\nthe models library. The cities dataset has four properties,\n“NAME”, “COUNTRY”, “POPULATION”, and “CAPITAL”. To map them all\nto NetLogo turtle variables and set their shapes to circles, you\ncould do this:",[987,2825,2826],{},[131,2827,2828,2261,2833,1010,2836,2261,2841,972,2845,1010,2849,2261,2855,972,2859,972,2863,972,2867,1010,2871,2261,2877,1010,2881,2883,972,2889,2893,2264,2895,972,2898,972,2901,972,2904,2909,2264,2911,972,2914,972,2917,2261,2920,2922,2923,972,2926,972,2930,2934,2936,2937],{},[230,2829,2832],{"className":2830},[995,2831],"keyword","extensions",[230,2834,12],{"className":2835},[995,996],[230,2837,2839,2781],{"className":2838},[995,2831],[1046,2840],{},[230,2842,2844],{"className":2843},[995,996],"cities",[230,2846,2848],{"className":2847},[995,996],"city",[230,2850,2852,2854],{"className":2851},[995,2831],[1046,2853],{},"cities-own",[230,2856,2858],{"className":2857},[995,996],"name",[230,2860,2862],{"className":2861},[995,996],"country",[230,2864,2866],{"className":2865},[995,996],"population",[230,2868,2870],{"className":2869},[995,996],"capital",[230,2872,2874,2876],{"className":2873},[995,2831],[1046,2875],{},"globals",[230,2878,2880],{"className":2879},[995,996],"cities-dataset",[1046,2882],{},[230,2884,2886,2888],{"className":2885},[995,2831],[1046,2887],{},"to",[230,2890,2892],{"className":2891},[995,996],"setup",[1046,2894],{},[230,2896,2287],{"className":2897},[995,1639],[230,2899,2880],{"className":2900},[995,996],[230,2902,63],{"className":2903},[995,996],[230,2905,2908],{"className":2906},[995,2907],"string","\"cities.shp\"",[1046,2910],{},[230,2912,78],{"className":2913},[995,996],[230,2915,2880],{"className":2916},[995,996],[230,2918,2844],{"className":2919},[995,996],[1046,2921],{},"    ",[230,2924,2287],{"className":2925},[995,1639],[230,2927,2929],{"className":2928},[995,1025],"shape",[230,2931,2933],{"className":2932},[995,2907],"\"circle\"",[1046,2935],{},"  ]",[230,2938,2940,2942],{"className":2939},[995,2831],[1046,2941],{},"end",[217,2944,220,2946,220,2951,2972,2983,3010,3020,3023],{"className":2945,"id":2809},[946],[40,2947,951,2949,220],{"id":2948},"giscreate-turtles-from-points-manual",[16,2950,596],{"href":593},[955,2952,2955],{"id":2953,"className":2954},"giscreate-turtles-from-points-manual-vector-dataset-breed-property-mapping-commands",[14],[16,2956,951,2959,220],{"className":2957,"href":2958},[19],"#----giscreate-turtles-from-points-manual-vector-dataset-breed-property-mapping-commands--",[230,2960,2962,2963,972,2965,972,2967,972,2970],{"className":2961},[966],"gis:create-turtles-from-points-manual ",[969,2964,2100],{},[969,2966,2781],{},[969,2968,2969],{},"property-mapping",[969,2971,2784],{},[33,2973,2974,2975,2982],{},"Like ",[1071,2976,2977],{"displayText":78,"permalink":12},[16,2978,78],{"href":2979,"rel":2980,"className":2981,"dataDisplayText":78,"target":1080,"title":78},"/gis#create-turtles-from-points",[1077],[1079],", creates a turtle for each point in a\nVectorDataset of points and populates their variables with the values of\ncorresponding gis properties.",[33,2984,2985,2986],{},"This primitive can be used to specify\nadditional mappings between gis property names and NetLogo variable names.\nThese mappings are specified as a list of lists of strings like so:\n",[131,2987,2988,2989,972,2993,2997,2998,972,3001,3004,3005,3009],{},"[[",[230,2990,2992],{"className":2991},[995,2907],"\"property-name\"",[230,2994,2996],{"className":2995},[995,2907],"\"turtle-variable-name\"","] [",[230,2999,2992],{"className":3000},[995,2907],[230,3002,2996],{"className":3003},[995,2907],"] (",[230,3006,3008],{"className":3007},[995,996],"etc.",")]",[33,3011,3012,3013,3019],{},"These manual mappings modify the automatic mapping process that takes\nplace in the ",[1071,3014,3015],{"displayText":78,"permalink":12},[16,3016,78],{"href":2979,"rel":3017,"className":3018,"dataDisplayText":78,"target":1080,"title":78},[1077],[1079]," primitive, so you only need\nto specify the changes you want to make to the default mappings, and\nthe rest of the mappings will be untouched.",[33,3021,3022],{},"To return to the cities example from the\ncreate-turtles-from-points entry, the variable name “capital” is not very\ndescriptive. something like “is-capital?” fits the NetLogo style much better.\nTo make that change, you would modify the example like so.",[987,3024,3025],{},[131,3026,3027,2261,3030,1010,3033,2261,3038,972,3041,1010,3044,2261,3049,972,3052,972,3055,972,3058,1010,3062,2261,3067,1010,3070,3072,972,3077,3080,2264,3082,972,3085,972,3088,972,3091,3094,2264,3096,3100,2264,3102,972,3105,972,3108,3111,3112,972,3116,3120,3121,2922,3123,972,3126,972,3129,3132,2936,3134,2264,3136,3140],{},[230,3028,2832],{"className":3029},[995,2831],[230,3031,12],{"className":3032},[995,996],[230,3034,3036,2781],{"className":3035},[995,2831],[1046,3037],{},[230,3039,2844],{"className":3040},[995,996],[230,3042,2848],{"className":3043},[995,996],[230,3045,3047,2854],{"className":3046},[995,2831],[1046,3048],{},[230,3050,2858],{"className":3051},[995,996],[230,3053,2862],{"className":3054},[995,996],[230,3056,2866],{"className":3057},[995,996],[230,3059,3061],{"className":3060},[995,996],"is-capital?",[230,3063,3065,2876],{"className":3064},[995,2831],[1046,3066],{},[230,3068,2880],{"className":3069},[995,996],[1046,3071],{},[230,3073,3075,2888],{"className":3074},[995,2831],[1046,3076],{},[230,3078,2892],{"className":3079},[995,996],[1046,3081],{},[230,3083,2287],{"className":3084},[995,1639],[230,3086,2880],{"className":3087},[995,996],[230,3089,63],{"className":3090},[995,996],[230,3092,2908],{"className":3093},[995,2907],[1046,3095],{},[230,3097,3099],{"className":3098},[995,2249],";; Since we only want to change how the \"CAPITAL\" property is mapped, we only need to specify that one change.",[1046,3101],{},[230,3103,596],{"className":3104},[995,996],[230,3106,2880],{"className":3107},[995,996],[230,3109,2844],{"className":3110},[995,996]," [[",[230,3113,3115],{"className":3114},[995,2907],"\"CAPITAL\"",[230,3117,3119],{"className":3118},[995,2907],"\"is-capital?\"","]] [",[1046,3122],{},[230,3124,2287],{"className":3125},[995,1639],[230,3127,2929],{"className":3128},[995,1025],[230,3130,2933],{"className":3131},[995,2907],[1046,3133],{},[1046,3135],{},[230,3137,3139],{"className":3138},[995,2249],";; Each city turtle still has a name, country, and population set just like the non-manual version.",[230,3141,3143,2942],{"className":3142},[995,2831],[1046,3144],{},[217,3146,220,3149,220,3154,3175,3187,3203,3205,3225],{"className":3147,"id":3148},[946],"create-turtles-inside-polygon",[40,3150,951,3152,220],{"id":3151},"giscreate-turtles-inside-polygon",[16,3153,90],{"href":603},[955,3155,3158],{"id":3156,"className":3157},"giscreate-turtles-inside-polygon-vector-feature-breed-n-commands",[14],[16,3159,951,3162,220],{"className":3160,"href":3161},[19],"#----giscreate-turtles-inside-polygon-vector-feature-breed-n-commands--",[230,3163,3165,3166,972,3168,972,3170,972,3173],{"className":3164},[966],"gis:create-turtles-inside-polygon ",[969,3167,2181],{},[969,3169,2781],{},[969,3171,3172],{},"n",[969,3174,2784],{},[33,3176,3177,3178,2791,3180,2795],{},"Randomly create “n” turtles of the given breed within\nthe given VectorFeature and for each agent variable\n(as defined in ",[131,3179,2790],{},[1071,3181,3182],{"displayText":2794,"permalink":2794},[16,3183,2794],{"href":3184,"rel":3185,"className":3186,"dataDisplayText":2794,"target":1080,"title":2794},"/dictionary#turtles",[1077],[1079],[33,3188,3189,3190,2806,3196,142],{},"Property names and variable names are compared case-insensitively.\nKeep in mind that when importing shapefiles, property names may be\nmodified for backwards compatibility reasons. The names given by\n",[1071,3191,3192],{"displayText":428,"permalink":12},[16,3193,428],{"href":2803,"rel":3194,"className":3195,"dataDisplayText":428,"target":1080,"title":428},[1077],[1079],[1071,3197,3198],{"displayText":615,"permalink":12},[16,3199,615],{"href":3200,"rel":3201,"className":3202,"dataDisplayText":615,"target":1080,"title":615},"/gis#create-turtles-inside-polygon-manual",[1077],[1079],[33,3204,2820],{},[33,3206,3207,3208,3216,3217,3224],{},"As an example: say you had a VectorDataset of polygons representing\ndifferent zip codes within a state and you want to create 100\ndifferent turtles within each zip code and have each turtle\nknow which zip code it originated in. The VectorDataset\nhas a field named “zip”, so you should add a variable\nnamed “zip” to the turtles with ",[1071,3209,3211],{"displayText":3210,"permalink":3210},"turtles-own",[16,3212,3210],{"href":3213,"rel":3214,"className":3215,"dataDisplayText":3210,"target":1080,"title":3210},"/dictionary#turtles-own",[1077],[1079],". Then,\nloop through each VectorFeature in the VectorDataset and use\nthe ",[1071,3218,3219],{"displayText":90,"permalink":12},[16,3220,90],{"href":3221,"rel":3222,"className":3223,"dataDisplayText":90,"target":1080,"title":90},"/gis#create-turtles-inside-polygon",[1077],[1079]," primitive to create 100\nnew turtles.",[987,3226,3227],{},[131,3228,3229,2261,3232,1010,3235,2261,3240,1010,3243,2261,3248,1010,3252,3254,972,3259,3262,2264,3264,972,3267,972,3270,972,3273,3277,2264,3279,972,3282,972,3285,3288,2264,3290,972,3293,3298,2264,3300,972,3303,972,3306,3309,3311,2264,3313,972,3317,972,3320,3323,3324,972,3328,3332,2922,3334,972,3338,972,3341,972,3344,2261,3347,3349,3350,972,3353,972,3356,3360,3362,3363,2936,3365],{},[230,3230,2832],{"className":3231},[995,2831],[230,3233,12],{"className":3234},[995,996],[230,3236,3238,2876],{"className":3237},[995,2831],[1046,3239],{},[230,3241,1940],{"className":3242},[995,996],[230,3244,3246,3210],{"className":3245},[995,2831],[1046,3247],{},[230,3249,3251],{"className":3250},[995,996],"zip",[1046,3253],{},[230,3255,3257,2888],{"className":3256},[995,2831],[1046,3258],{},[230,3260,2892],{"className":3261},[995,996],[1046,3263],{},[230,3265,2287],{"className":3266},[995,1639],[230,3268,1940],{"className":3269},[995,996],[230,3271,63],{"className":3272},[995,996],[230,3274,3276],{"className":3275},[995,2907],"\"dataset.shp\"",[1046,3278],{},[230,3280,252],{"className":3281},[995,996],[230,3283,1330],{"className":3284},[995,996],[230,3286,1940],{"className":3287},[995,996],[1046,3289],{},[230,3291,893],{"className":3292},[995,996],[230,3294,3297],{"className":3295},[995,3296],"constant","red",[1046,3299],{},[230,3301,903],{"className":3302},[995,996],[230,3304,1940],{"className":3305},[995,996],[230,3307,1691],{"className":3308},[995,1030],[1046,3310],{},[1046,3312],{},[230,3314,3316],{"className":3315},[995,1639],"foreach",[230,3318,438],{"className":3319},[995,996],[230,3321,1940],{"className":3322},[995,996]," [ ",[230,3325,3327],{"className":3326},[995,996],"this-vector-feature",[230,3329,3331],{"className":3330},[995,1025],"->",[1046,3333],{},[230,3335,3337],{"className":3336},[995,996],"gis:create-turtles-inside",[230,3339,3327],{"className":3340},[995,996],[230,3342,2794],{"className":3343},[995,1025],[230,3345,2260],{"className":3346},[995,1030],[1046,3348],{},"      ",[230,3351,2287],{"className":3352},[995,1639],[230,3354,2929],{"className":3355},[995,1025],[230,3357,3359],{"className":3358},[995,2907],"\"person\"",[1046,3361],{},"    ]",[1046,3364],{},[230,3366,3368,2942],{"className":3367},[995,2831],[1046,3369],{},[217,3371,220,3374,220,3379,3401,3410,3429,3437],{"className":3372,"id":3373},[946],"create-turtles-inside-polygon-manual",[40,3375,951,3377,220],{"id":3376},"giscreate-turtles-inside-polygon-manual",[16,3378,615],{"href":612},[955,3380,3383],{"id":3381,"className":3382},"giscreate-turtles-inside-polygon-manual-vector-feature-breed-n-property-mapping-commands",[14],[16,3384,951,3387,220],{"className":3385,"href":3386},[19],"#----giscreate-turtles-inside-polygon-manual-vector-feature-breed-n-property-mapping-commands--",[230,3388,3390,3391,972,3393,972,3395,972,3397,972,3399],{"className":3389},[966],"gis:create-turtles-inside-polygon-manual ",[969,3392,2181],{},[969,3394,2781],{},[969,3396,3172],{},[969,3398,2969],{},[969,3400,2784],{},[33,3402,2974,3403,3409],{},[1071,3404,3405],{"displayText":90,"permalink":12},[16,3406,90],{"href":3221,"rel":3407,"className":3408,"dataDisplayText":90,"target":1080,"title":90},[1077],[1079],", creates “n” different turtles within the given VectorFeature and populates their\nagent variables with values corresponding to the property values of the VectorFeature.",[33,3411,2985,3412],{},[131,3413,2988,3414,972,3417,2997,3420,972,3423,3004,3426,3009],{},[230,3415,2992],{"className":3416},[995,2907],[230,3418,2996],{"className":3419},[995,2907],[230,3421,2992],{"className":3422},[995,2907],[230,3424,2996],{"className":3425},[995,2907],[230,3427,3008],{"className":3428},[995,996],[33,3430,3012,3431,3019],{},[1071,3432,3433],{"displayText":90,"permalink":12},[16,3434,90],{"href":3221,"rel":3435,"className":3436,"dataDisplayText":90,"target":1080,"title":90},[1077],[1079],[33,3438,1282,3439,3445],{},[1071,3440,3441],{"displayText":596,"permalink":12},[16,3442,596],{"href":2812,"rel":3443,"className":3444,"dataDisplayText":596,"target":1080,"title":596},[1077],[1079]," entry for an example of\nhow to override default mappings with manual ones.",[217,3447,220,3450,220,3455,3466],{"className":3448,"id":3449},[946],"coverage-minimum-threshold",[40,3451,951,3453,220],{"id":3452},"giscoverage-minimum-threshold",[16,3454,625],{"href":622},[955,3456,3459],{"id":3457,"className":3458},"giscoverage-minimum-threshold-1",[14],[16,3460,951,3463,220],{"className":3461,"href":3462},[19],"#----giscoverage-minimum-threshold---1",[230,3464,625],{"className":3465},[966],[33,3467,3468,3469,175],{},"Reports the current coverage minimum threshold used by ",[1071,3470,3471],{"displayText":577,"permalink":12},[16,3472,577],{"href":3473,"rel":3474,"className":3475,"dataDisplayText":577,"target":1080,"title":577},"/gis#apply-coverage",[1077],[1079],[217,3477,220,3480,220,3485,3500],{"className":3478,"id":3479},[946],"set-coverage-minimum-threshold",[40,3481,951,3483,220],{"id":3482},"gisset-coverage-minimum-threshold",[16,3484,635],{"href":632},[955,3486,3489],{"id":3487,"className":3488},"gisset-coverage-minimum-threshold-new-threshold",[14],[16,3490,951,3493,220],{"className":3491,"href":3492},[19],"#----gisset-coverage-minimum-threshold-new-threshold--",[230,3494,3496,3497],{"className":3495},[966],"gis:set-coverage-minimum-threshold ",[969,3498,3499],{},"new-threshold",[33,3501,3502,3503,175],{},"Sets the current coverage minimum threshold to be used by ",[1071,3504,3505],{"displayText":577,"permalink":12},[16,3506,577],{"href":3473,"rel":3507,"className":3508,"dataDisplayText":577,"target":1080,"title":577},[1077],[1079],[217,3510,220,3513,220,3518,3529],{"className":3511,"id":3512},[946],"coverage-maximum-threshold",[40,3514,951,3516,220],{"id":3515},"giscoverage-maximum-threshold",[16,3517,645],{"href":642},[955,3519,3522],{"id":3520,"className":3521},"giscoverage-maximum-threshold-1",[14],[16,3523,951,3526,220],{"className":3524,"href":3525},[19],"#----giscoverage-maximum-threshold---1",[230,3527,645],{"className":3528},[966],[33,3530,3531,3532,175],{},"Reports the current coverage maximum threshold used by ",[1071,3533,3534],{"displayText":577,"permalink":12},[16,3535,577],{"href":3473,"rel":3536,"className":3537,"dataDisplayText":577,"target":1080,"title":577},[1077],[1079],[217,3539,220,3542,220,3547,3561],{"className":3540,"id":3541},[946],"set-coverage-maximum-threshold",[40,3543,951,3545,220],{"id":3544},"gisset-coverage-maximum-threshold",[16,3546,655],{"href":652},[955,3548,3551],{"id":3549,"className":3550},"gisset-coverage-maximum-threshold-new-threshold",[14],[16,3552,951,3555,220],{"className":3553,"href":3554},[19],"#----gisset-coverage-maximum-threshold-new-threshold--",[230,3556,3558,3559],{"className":3557},[966],"gis:set-coverage-maximum-threshold ",[969,3560,3499],{},[33,3562,3563,3564,175],{},"Sets the current coverage maximum threshold to be used by ",[1071,3565,3566],{"displayText":577,"permalink":12},[16,3567,577],{"href":3473,"rel":3568,"className":3569,"dataDisplayText":577,"target":1080,"title":577},[1077],[1079],[217,3571,220,3574,220,3579,3597,3600],{"className":3572,"id":3573},[946],"intersects",[40,3575,951,3577,220],{"id":3576},"gisintersects",[16,3578,665],{"href":662},[955,3580,3583],{"id":3581,"className":3582},"gisintersects-x-y",[14],[16,3584,951,3587,220],{"className":3585,"href":3586},[19],"#----gisintersects-x-y--",[230,3588,3590,3591,972,3594],{"className":3589},[966],"gis:intersects? ",[969,3592,3593],{},"x",[969,3595,3596],{},"y",[33,3598,3599],{},"Reports true if the given objects’ spatial representations\nshare at least one point in common, and false otherwise. The\nobjects x and y may be any one of:",[1481,3601,3602,3605,3608,3611,3614,3617,3620],{},[1484,3603,3604],{},"a VectorDataset, in which case the object’s spatial\nrepresentation is the union of all the points, lines, or polygons\nthe dataset contains.",[1484,3606,3607],{},"a VectorFeature, in which case the object’s spatial\nrepresentation is defined by the point, line, or polygon the\nfeature contains.",[1484,3609,3610],{},"A turtle, in which case the spatial representation is a point.",[1484,3612,3613],{},"A link, whose spatial representation is a line segment\nconnecting the two points represented by the turtles the link is\nconnecting.",[1484,3615,3616],{},"A patch, whose spatial representation is a rectangular polygon.",[1484,3618,3619],{},"An agentset, whose spatial representation is the union of the\nrepresentations of all of the agents it contains.",[1484,3621,3622],{},"A list containing of any of the items listed here, including\nanother list. The spatial representation of such a list is the\nunion of the spatial representations of its contents.",[217,3624,220,3627,220,3632,3648,3657],{"className":3625,"id":3626},[946],"contains",[40,3628,951,3630,220],{"id":3629},"giscontains",[16,3631,675],{"href":672},[955,3633,3636],{"id":3634,"className":3635},"giscontains-x-y",[14],[16,3637,951,3640,220],{"className":3638,"href":3639},[19],"#----giscontains-x-y--",[230,3641,3643,3644,972,3646],{"className":3642},[966],"gis:contains? ",[969,3645,3593],{},[969,3647,3596],{},[33,3649,3650,3651,3653,3654,3656],{},"Reports true if every point of ",[980,3652,3596],{},"’s spatial\nrepresentation is also a part of ",[980,3655,3593],{},"’s spatial\nrepresentation. Note that this means that polygons do contain their\nboundaries. The objects x and y may be any one of",[1481,3658,3659,3661,3663,3665,3667,3669,3671],{},[1484,3660,3604],{},[1484,3662,3607],{},[1484,3664,3610],{},[1484,3666,3613],{},[1484,3668,3616],{},[1484,3670,3619],{},[1484,3672,3622],{},[217,3674,220,3677,220,3682,3698,3705],{"className":3675,"id":3676},[946],"contained-by",[40,3678,951,3680,220],{"id":3679},"giscontained-by",[16,3681,685],{"href":682},[955,3683,3686],{"id":3684,"className":3685},"giscontained-by-x-y",[14],[16,3687,951,3690,220],{"className":3688,"href":3689},[19],"#----giscontained-by-x-y--",[230,3691,3693,3694,972,3696],{"className":3692},[966],"gis:contained-by? ",[969,3695,3593],{},[969,3697,3596],{},[33,3699,3650,3700,3653,3702,3704],{},[980,3701,3593],{},[980,3703,3596],{},"’s spatial\nrepresentation. The objects x and y may be any one of:",[1481,3706,3707,3709,3711,3713,3715,3717,3719],{},[1484,3708,3604],{},[1484,3710,3607],{},[1484,3712,3610],{},[1484,3714,3613],{},[1484,3716,3616],{},[1484,3718,3619],{},[1484,3720,3622],{},[217,3722,220,3725,220,3730,3746,3753,3773,3776,3843,3862,3869,3911,3914,3931,3938,3941],{"className":3723,"id":3724},[946],"have-relationship",[40,3726,951,3728,220],{"id":3727},"gishave-relationship",[16,3729,695],{"href":692},[955,3731,3734],{"id":3732,"className":3733},"gishave-relationship-x-y",[14],[16,3735,951,3738,220],{"className":3736,"href":3737},[19],"#----gishave-relationship-x-y--",[230,3739,3741,3742,972,3744],{"className":3740},[966],"gis:have-relationship? ",[969,3743,3593],{},[969,3745,3596],{},[33,3747,3748,3749,3752],{},"Reports true if the spatial representations of the two objects have\nthe given spatial relationship, and false otherwise. The spatial\nrelationship is specified using a ",[107,3750,3751],{},"Dimensionally Extended Nine-\nIntersection Model (DE-9IM)"," matrix. The matrix consists of 9\nelements, each of which specifies the required relationship between\nthe two objects’ interior space, boundary space, or exterior\nspace. The elements must have one of six possible values:",[1481,3754,3755,3758,3761,3764,3767,3770],{},[1484,3756,3757],{},"“T”, meaning the spaces must intersect in some way",[1484,3759,3760],{},"“F”, meaning the spaces must not intersect in any way",[1484,3762,3763],{},"“0”, meaning the dimension of the spaces’\nintersection must be zero (i.e., it must be a point or non-empty\nset of points).",[1484,3765,3766],{},"“1”, meaning the dimension of the spaces’\nintersection must be one (i.e., it must be a line or non-empty set\nof line segments).",[1484,3768,3769],{},"“2”, meaning the dimension of the spaces’\nintersection must be two (i.e., it must be a polygon or set of\npolygons whose area is greater than zero).",[1484,3771,3772],{},"”*”, meaning that the two spaces may have any\nrelationship.",[33,3774,3775],{},"For example, this matrix:\n",[217,3777,3779],{"className":3778},[1123],[1125,3780,3783],{"width":3781,"border":1128,"style":3782},"50%","text-align: center; margin: 0 auto;",[1132,3784,3785,3795,3806,3822,3832],{},[1135,3786,220,3787,3791],{},[1138,3788,220],{"rowSpan":3789,"colSpan":3790},2,"2",[1138,3792,3794],{"colSpan":3793},"3","\n    x\n  ",[1135,3796,220,3797,3800,3803],{},[1138,3798,3799],{}," Interior ",[1138,3801,3802],{}," Boundary ",[1138,3804,3805],{}," Exterior ",[1135,3807,220,3808,3812,3814,3817,3820],{},[1138,3809,3811],{"rowSpan":3810},3,"\n    y\n  ",[1138,3813,3799],{},[1138,3815,3816],{}," T ",[1138,3818,3819],{}," * ",[1138,3821,3819],{},[1135,3823,220,3824,3826,3828,3830],{},[1138,3825,3802],{},[1138,3827,3819],{},[1138,3829,3819],{},[1138,3831,3819],{},[1135,3833,220,3834,3836,3839,3841],{},[1138,3835,3805],{},[1138,3837,3838],{}," F ",[1138,3840,3838],{},[1138,3842,3819],{},[33,3844,3845,3846,3848,3849,3851,3852,3854,3855,3857,3858,3861],{},"would return true if and only if some part of object ",[980,3847,3593],{},"’s\ninterior lies inside object ",[980,3850,3596],{},"’s interior, and no part of\nobject ",[980,3853,3593],{},"’s interior or boundary intersects object\n",[980,3856,3596],{},"’s exterior. This is essentially a more restrictive\nform of the ",[131,3859,3860],{},"contains?"," primitive; one in which polygons are\nnot considered to contain their boundaries.",[33,3863,3864,3865,3868],{},"The matrix is given to the ",[131,3866,3867],{},"have-relationship?"," primitive as\na string, whose elements are given in the following order:\n",[217,3870,3872],{"className":3871},[1123],[1125,3873,3876],{"width":3874,"border":1128,"style":3782,"align":3875},"25%","center",[1132,3877,3878,3889,3900],{},[1135,3879,220,3880,3883,3886],{},[1138,3881,3882],{}," 1 ",[1138,3884,3885],{}," 2 ",[1138,3887,3888],{}," 3 ",[1135,3890,220,3891,3894,3897],{},[1138,3892,3893],{}," 4 ",[1138,3895,3896],{}," 5 ",[1138,3898,3899],{}," 6 ",[1135,3901,220,3902,3905,3908],{},[1138,3903,3904],{}," 7 ",[1138,3906,3907],{}," 8 ",[1138,3909,3910],{}," 9 ",[33,3912,3913],{},"So to use the example matrix above, you would write:",[987,3915,3916],{},[131,3917,3918,972,3921,972,3924,972,3927],{},[230,3919,695],{"className":3920},[995,996],[230,3922,3593],{"className":3923},[995,996],[230,3925,3596],{"className":3926},[995,996],[230,3928,3930],{"className":3929},[995,2907],"\"T*****FF*\"",[33,3932,3933,3934,175],{},"A much more detailed and formal description of the DE-9IM matrix\nand the associated point-set theory can be found in the ",[16,3935,3937],{"href":3936,"target":173},"http://www.opengeospatial.org/standards/sfs","OpenGIS Simple\nFeatures Specification for SQL",[33,3939,3940],{},"The objects x and y may be any one of:",[1481,3942,3943,3945,3947,3949,3951,3953,3955],{},[1484,3944,3604],{},[1484,3946,3607],{},[1484,3948,3610],{},[1484,3950,3613],{},[1484,3952,3616],{},[1484,3954,3619],{},[1484,3956,3622],{},[217,3958,220,3961,220,3966,3982,3989,4003,4013,4016,4070,4076,4080,4082],{"className":3959,"id":3960},[946],"relationship-of",[40,3962,951,3964,220],{"id":3963},"gisrelationship-of",[16,3965,705],{"href":702},[955,3967,3970],{"id":3968,"className":3969},"gisrelationship-of-x-y",[14],[16,3971,951,3974,220],{"className":3972,"href":3973},[19],"#----gisrelationship-of-x-y--",[230,3975,3977,3978,972,3980],{"className":3976},[966],"gis:relationship-of ",[969,3979,3593],{},[969,3981,3596],{},[33,3983,3984,3985,3988],{},"Reports the ",[107,3986,3987],{},"Dimensionally Extended Nine-Intersection Model\n(DE-9IM)"," matrix that describes the spatial relationship of the\ntwo objects. The matrix consists of 9 elements, each of which\ndescribes the relationship between the two objects’ interior\nspace, boundary space, or exterior space. Each element will\ndescribe the dimension of the intersection of two spaces, meaning\nthat it may have one of four possible values:",[1481,3990,3991,3994,3997,4000],{},[1484,3992,3993],{},"“-1”, meaning the spaces do not intersect",[1484,3995,3996],{},"“0”, meaning the dimension of the spaces’\nintersection is zero (i.e., they intersect at a point or set of\npoints).",[1484,3998,3999],{},"“1”, meaning the dimension of the spaces’\nintersection is one (i.e., they intersect along one or more lines).",[1484,4001,4002],{},"“2”, meaning the dimension of the spaces’\nintersection is two (i.e., their intersection is a non-empty\npolygon).",[33,4004,4005,4006],{},"For example, the two polygons x and y shown here:\n",[1142,4007],{"alt":1144,"src":4008,"width":4009,"height":4010,"style":4011},"/_content/images/intersecting-polygons.png",325,150,{"aspectRatio":4012},"325/150",[33,4014,4015],{},"have the following DE-9IM matrix:",[217,4017,4019],{"className":4018},[1123],[1125,4020,220,4021],{"width":3781,"border":1128,"style":3782,"align":3875},[1132,4022,4023,4029,4037,4049,4060],{},[1135,4024,220,4025,4027],{},[1138,4026,220],{"rowSpan":3789,"colSpan":3790},[1138,4028,3794],{"colSpan":3793},[1135,4030,220,4031,4033,4035],{},[1138,4032,3799],{},[1138,4034,3802],{},[1138,4036,3805],{},[1135,4038,220,4039,4041,4043,4045,4047],{},[1138,4040,3811],{"rowSpan":3810},[1138,4042,3799],{},[1138,4044,3885],{},[1138,4046,3882],{},[1138,4048,3885],{},[1135,4050,220,4051,4053,4055,4058],{},[1138,4052,3802],{},[1138,4054,3882],{},[1138,4056,4057],{}," 0 ",[1138,4059,3882],{},[1135,4061,220,4062,4064,4066,4068],{},[1138,4063,3805],{},[1138,4065,3885],{},[1138,4067,3882],{},[1138,4069,3885],{},[33,4071,4072,4073,4075],{},"Which would be reported by the ",[131,4074,3960],{}," primitive\nas the string “212101212”.",[33,4077,3933,4078,175],{},[16,4079,3937],{"href":3936,"target":173},[33,4081,3940],{},[1481,4083,4084,4086,4088,4090,4092,4094,4096],{},[1484,4085,3604],{},[1484,4087,3607],{},[1484,4089,3610],{},[1484,4091,3613],{},[1484,4093,3616],{},[1484,4095,3619],{},[1484,4097,3622],{},[217,4099,220,4102,220,4107,4124],{"className":4100,"id":4101},[946],"intersecting",[40,4103,951,4105,220],{"id":4104},"gisintersecting",[16,4106,715],{"href":712},[955,4108,4111],{"id":4109,"className":4110},"patch-set-gisintersecting-data",[14],[16,4112,951,4115,220],{"className":4113,"href":4114},[19],"#----patch-set-gisintersecting-data--",[230,4116,4118,4121,4122],{"className":4117},[966],[969,4119,4120],{},"patch-set"," gis:intersecting ",[969,4123,344],{},[33,4125,4126,4127,4129],{},"Reports a new agent set containing only those members of the given\nagent set which intersect given GIS ",[980,4128,344],{},", which may be any\none of: a VectorDataset, a VectorFeature, an Agent, an Agent Set,\nor a list containing any of the above.",[217,4131,220,4134,220,4139,4154],{"className":4132,"id":4133},[946],"width-of",[40,4135,951,4137,220],{"id":4136},"giswidth-of",[16,4138,734],{"href":731},[955,4140,4143],{"id":4141,"className":4142},"giswidth-of-raster-dataset",[14],[16,4144,951,4147,220],{"className":4145,"href":4146},[19],"#----giswidth-of-raster-dataset--",[230,4148,4150,4151],{"className":4149},[966],"gis:width-of ",[969,4152,4153],{},"raster-dataset",[33,4155,4156],{},"Reports the number of columns in the dataset. Note that this is the\nnumber of cells from left to right, not the width of the dataset in\nGIS space.",[217,4158,220,4161,220,4166,4180],{"className":4159,"id":4160},[946],"height-of",[40,4162,951,4164,220],{"id":4163},"gisheight-of",[16,4165,744],{"href":741},[955,4167,4170],{"id":4168,"className":4169},"gisheight-of-raster-dataset",[14],[16,4171,951,4174,220],{"className":4172,"href":4173},[19],"#----gisheight-of-raster-dataset--",[230,4175,4177,4178],{"className":4176},[966],"gis:height-of ",[969,4179,4153],{},[33,4181,4182],{},"Reports the number of rows in the dataset. Note that this is the\nnumber of cells from top to bottom, not the height of the dataset\nin GIS space.",[217,4184,220,4187,220,4192,4210],{"className":4185,"id":4186},[946],"raster-value",[40,4188,951,4190,220],{"id":4189},"gisraster-value",[16,4191,754],{"href":751},[955,4193,4196],{"id":4194,"className":4195},"gisraster-value-raster-dataset-x-y",[14],[16,4197,951,4200,220],{"className":4198,"href":4199},[19],"#----gisraster-value-raster-dataset-x-y--",[230,4201,4203,4204,972,4206,972,4208],{"className":4202},[966],"gis:raster-value ",[969,4205,4153],{},[969,4207,3593],{},[969,4209,3596],{},[33,4211,4212,4213,4221,4222,4230],{},"Reports the value of the given raster dataset in the given cell.\nCell coordinates are numbered from left to right, and from top to\nbottom, beginning with zero. So the upper left cell is (0, 0), and\nthe bottom right cell is (",[131,4214,4215,972,4218],{},[230,4216,734],{"className":4217},[995,996],[230,4219,1940],{"className":4220},[995,996]," - 1,\n",[131,4223,4224,972,4227],{},[230,4225,744],{"className":4226},[995,996],[230,4228,1940],{"className":4229},[995,996]," - 1).",[217,4232,220,4235,220,4240,4260,4271],{"className":4233,"id":4234},[946],"set-raster-value",[40,4236,951,4238,220],{"id":4237},"gisset-raster-value",[16,4239,764],{"href":761},[955,4241,4244],{"id":4242,"className":4243},"gisset-raster-value-raster-dataset-x-y-value",[14],[16,4245,951,4248,220],{"className":4246,"href":4247},[19],"#----gisset-raster-value-raster-dataset-x-y-value--",[230,4249,4251,4252,972,4254,972,4256,972,4258],{"className":4250},[966],"gis:set-raster-value ",[969,4253,4153],{},[969,4255,3593],{},[969,4257,3596],{},[969,4259,2374],{},[33,4261,4262,4263],{},"Sets the value of the given raster dataset at the given cell to a\nnew value. Cell coordinates are numbered from left to right, and\nfrom top to bottom, beginning with zero. So the upper left cell is\n(0, 0), and the bottom right cell is (",[131,4264,4265,972,4268],{},[230,4266,734],{"className":4267},[995,996],[230,4269,1940],{"className":4270},[995,996],[1481,4272,4273],{},[1484,4274,4275,4276,4230],{},"1, ",[131,4277,4278,972,4281],{},[230,4279,744],{"className":4280},[995,996],[230,4282,1940],{"className":4283},[995,996],[217,4285,220,4288,220,4293,4307],{"className":4286,"id":4287},[946],"minimum-of",[40,4289,951,4291,220],{"id":4290},"gisminimum-of",[16,4292,774],{"href":771},[955,4294,4297],{"id":4295,"className":4296},"gisminimum-of-raster-dataset",[14],[16,4298,951,4301,220],{"className":4299,"href":4300},[19],"#----gisminimum-of-raster-dataset--",[230,4302,4304,4305],{"className":4303},[966],"gis:minimum-of ",[969,4306,4153],{},[33,4308,4309],{},"Reports the highest value in the given raster dataset.",[217,4311,220,4314,220,4319,4333],{"className":4312,"id":4313},[946],"maximum-of",[40,4315,951,4317,220],{"id":4316},"gismaximum-of",[16,4318,784],{"href":781},[955,4320,4323],{"id":4321,"className":4322},"gismaximum-of-raster-dataset",[14],[16,4324,951,4327,220],{"className":4325,"href":4326},[19],"#----gismaximum-of-raster-dataset--",[230,4328,4330,4331],{"className":4329},[966],"gis:maximum-of ",[969,4332,4153],{},[33,4334,4335],{},"Reports the lowest value in the given raster dataset.",[217,4337,220,4340,220,4345,4359,4392,4429],{"className":4338,"id":4339},[946],"sampling-method-of",[40,4341,951,4343,220],{"id":4342},"gissampling-method-of",[16,4344,794],{"href":791},[955,4346,4349],{"id":4347,"className":4348},"gissampling-method-of-raster-dataset",[14],[16,4350,951,4353,220],{"className":4351,"href":4352},[19],"#----gissampling-method-of-raster-dataset--",[230,4354,4356,4357],{"className":4355},[966],"gis:sampling-method-of ",[969,4358,4153],{},[33,4360,4361,4362,4369,4370,4369,4377,4384,4385,4391],{},"Reports the sampling method used to compute the value of the given\nraster dataset at a single point, or over an area smaller than a\nsingle raster cell. Sampling is performed by the GIS extension\nprimitives ",[1071,4363,4364],{"displayText":814,"permalink":12},[16,4365,814],{"href":4366,"rel":4367,"className":4368,"dataDisplayText":814,"target":1080,"title":814},"/gis#raster-sample",[1077],[1079],", ",[1071,4371,4372],{"displayText":844,"permalink":12},[16,4373,844],{"href":4374,"rel":4375,"className":4376,"dataDisplayText":844,"target":1080,"title":844},"/gis#resample",[1077],[1079],[1071,4378,4379],{"displayText":854,"permalink":12},[16,4380,854],{"href":4381,"rel":4382,"className":4383,"dataDisplayText":854,"target":1080,"title":854},"/gis#convolve",[1077],[1079],",\nand ",[1071,4386,4387],{"displayText":864,"permalink":12},[16,4388,864],{"href":2012,"rel":4389,"className":4390,"dataDisplayText":864,"target":1080,"title":864},[1077],[1079],". The sampling\nmethod will be one of the following:",[1481,4393,4394,4400,4406,4416],{},[1484,4395,4396,4399],{},[131,4397,4398],{},"\"NEAREST_NEIGHBOR\"",": the value of the cell\nnearest the sampling location is used.",[1484,4401,4402,4405],{},[131,4403,4404],{},"\"BILINEAR\"",": the value of the four nearest\ncells are sampled by linear weighting, according to their\nproximity to the sampling site.",[1484,4407,4408,4411,4412,4415],{},[131,4409,4410],{},"\"BICUBIC\"",": the value of the sixteen nearest\ncells are sampled, and their values are combined by weight\naccording to a piecewise cubic polynomial recommended by Rifman\n(see ",[980,4413,4414],{},"Digital Image Warping",", George Wolberg, 1990, pp\n129-131, IEEE Computer Society Press).",[1484,4417,4418,4421,4422,4425,4426,4428],{},[131,4419,4420],{},"\"BICUBIC_2\"",": the value is sampled using the\nsame procedure and the same polynomial as with ",[131,4423,4424],{},"BICUBIC","\nabove, but using a different coefficient. This method may produce\nsomewhat sharper results than ",[131,4427,4424],{},", but that result\nis data dependent.",[33,4430,4431,4432,175],{},"For more information on these sampling methods and on raster\nsampling in general, see ",[16,4433,4435],{"href":4434,"target":173},"https://en.wikipedia.org/wiki/Image_scaling","this wikipedia\narticle",[217,4437,220,4440,220,4445,4462,4490,4508],{"className":4438,"id":4439},[946],"set-sampling-method",[40,4441,951,4443,220],{"id":4442},"gisset-sampling-method",[16,4444,804],{"href":801},[955,4446,4449],{"id":4447,"className":4448},"gisset-sampling-method-raster-dataset-sampling-method",[14],[16,4450,951,4453,220],{"className":4451,"href":4452},[19],"#----gisset-sampling-method-raster-dataset-sampling-method--",[230,4454,4456,4457,972,4459],{"className":4455},[966],"gis:set-sampling-method ",[969,4458,4153],{},[969,4460,4461],{},"sampling-method",[33,4463,4464,4465,4369,4471,4369,4477,4384,4483,4489],{},"Sets the sampling method used by the given raster dataset at a\nsingle point, or over an area smaller than a single raster cell.\nSampling is performed by the GIS extension primitives ",[1071,4466,4467],{"displayText":814,"permalink":12},[16,4468,814],{"href":4366,"rel":4469,"className":4470,"dataDisplayText":814,"target":1080,"title":814},[1077],[1079],[1071,4472,4473],{"displayText":844,"permalink":12},[16,4474,844],{"href":4374,"rel":4475,"className":4476,"dataDisplayText":844,"target":1080,"title":844},[1077],[1079],[1071,4478,4479],{"displayText":854,"permalink":12},[16,4480,854],{"href":4381,"rel":4481,"className":4482,"dataDisplayText":854,"target":1080,"title":854},[1077],[1079],[1071,4484,4485],{"displayText":864,"permalink":12},[16,4486,864],{"href":2012,"rel":4487,"className":4488,"dataDisplayText":864,"target":1080,"title":864},[1077],[1079],". The sampling\nmethod must be one of the following:",[1481,4491,4492,4496,4500,4504],{},[1484,4493,4494],{},[131,4495,4398],{},[1484,4497,4498],{},[131,4499,4404],{},[1484,4501,4502],{},[131,4503,4410],{},[1484,4505,4506],{},[131,4507,4420],{},[33,4509,1534,4510,4517],{},[1071,4511,4512],{"displayText":794,"permalink":12},[16,4513,794],{"href":4514,"rel":4515,"className":4516,"dataDisplayText":794,"target":1080,"title":794},"/gis#sampling-method-of",[1077],[1079]," above\nfor a more specific description of each sampling method.",[217,4519,220,4522,220,4527,4544,4547,4588,4591,4677],{"className":4520,"id":4521},[946],"raster-sample",[40,4523,951,4525,220],{"id":4524},"gisraster-sample",[16,4526,814],{"href":811},[955,4528,4531],{"id":4529,"className":4530},"gisraster-sample-raster-dataset-sample-location",[14],[16,4532,951,4535,220],{"className":4533,"href":4534},[19],"#----gisraster-sample-raster-dataset-sample-location--",[230,4536,4538,4539,972,4541],{"className":4537},[966],"gis:raster-sample ",[969,4540,4153],{},[969,4542,4543],{},"sample-location",[33,4545,4546],{},"Reports the value of the given raster over the given location. The\nlocation may be any of the following:",[1481,4548,4549,4568,4579,4582,4585],{},[1484,4550,4551,4552,4560,4561,4567],{},"A list of length 2, which is taken to represent a point in\nnetlogo space (",[131,4553,991,4554,972,4557,1010],{},[230,4555,1626],{"className":4556},[995,1025],[230,4558,1630],{"className":4559},[995,1025],") of the sort reported by\n",[1071,4562,4563],{"displayText":477,"permalink":12},[16,4564,477],{"href":1617,"rel":4565,"className":4566,"dataDisplayText":477,"target":1080,"title":477},[1077],[1079]," Vertex. The raster\ndataset is sampled at the point of that location.",[1484,4569,4570,4571,4578],{},"A list of length 4, which is taken to represent an envelope in\nGIS space, of the sort reported by ",[1071,4572,4573],{"displayText":1330,"permalink":12},[16,4574,1330],{"href":4575,"rel":4576,"className":4577,"dataDisplayText":1330,"target":1080,"title":1330},"/gis#envelope-of",[1077],[1079],". The raster dataset is sampled\nover the area of that envelope.",[1484,4580,4581],{},"A patch, in which case the raster dataset is sampled over the\narea of the patch.",[1484,4583,4584],{},"A turtle, in which case the raster dataset is sampled at the\nlocation of that turtle.",[1484,4586,4587],{},"A Vertex, in which case the raster dataset is sampled at the\nlocation of that Vertex.",[33,4589,4590],{},"If the requested location is outside the area covered by the raster\ndataset, this primitive reports the special value representing\n“not a number”, which is printed by NetLogo as\n“NaN”. Using the special “not a number” value\nas an argument to primitives that expect a number may cause an\nerror, but you can test the value reported by this primitive to\nfilter out “not a number” values. A value that is not a\nnumber will be neither less than nor greater than a number value,\nso you can detect “not a number” values using the\nfollowing:",[987,4592,4593],{},[131,4594,4595,972,4598,972,4601,972,4604,972,4607,972,4611,4614,4616,4620,4622,1210,4626,972,4629,972,4633,4636,4637,1210,4641,972,4644,972,4648,1044,4651,4653,4654,972,4657,972,4661,4665,4666,4653,4668,972,4671,972,4674,4665],{},[230,4596,1640],{"className":4597},[995,1639],[230,4599,2374],{"className":4600},[995,996],[230,4602,814],{"className":4603},[995,996],[230,4605,1940],{"className":4606},[995,996],[230,4608,4610],{"className":4609},[995,1025],"turtle",[230,4612,1672],{"className":4613},[995,1030],[1046,4615],{},[230,4617,4619],{"className":4618},[995,2249],"; set color to blue if value is a number, red if value is \"not a number\"",[1046,4621],{},[230,4623,4625],{"className":4624},[995,1639],"ifelse",[230,4627,2374],{"className":4628},[995,996],[230,4630,4632],{"className":4631},[995,1025],"\u003C=",[230,4634,1672],{"className":4635},[995,1030],") ",[230,4638,4640],{"className":4639},[995,1025],"or",[230,4642,2374],{"className":4643},[995,996],[230,4645,4647],{"className":4646},[995,1025],">=",[230,4649,1672],{"className":4650},[995,1030],[1046,4652],{},"[ ",[230,4655,2287],{"className":4656},[995,1639],[230,4658,4660],{"className":4659},[995,1025],"color",[230,4662,4664],{"className":4663},[995,3296],"blue"," ]",[1046,4667],{},[230,4669,2287],{"className":4670},[995,1639],[230,4672,4660],{"className":4673},[995,1025],[230,4675,3297],{"className":4676},[995,3296],[33,4678,4679,4680,4687],{},"If the requested location is a point, the sample is always computed\nusing the method set by ",[1071,4681,4682],{"displayText":804,"permalink":12},[16,4683,804],{"href":4684,"rel":4685,"className":4686,"dataDisplayText":804,"target":1080,"title":804},"/gis#set-sampling-method",[1077],[1079],". If the\nrequested location is an area (i.e., an envelope or patch), the\nsample is computed by taking the average of all raster cells\ncovered by the requested area.",[217,4689,220,4692,220,4697,4715,4725],{"className":4690,"id":4691},[946],"raster-world-envelope",[40,4693,951,4695,220],{"id":4694},"gisraster-world-envelope",[16,4696,824],{"href":821},[955,4698,4701],{"id":4699,"className":4700},"gisraster-world-envelope-raster-dataset-x-y",[14],[16,4702,951,4705,220],{"className":4703,"href":4704},[19],"#----gisraster-world-envelope-raster-dataset-x-y--",[230,4706,4708,4709,972,4711,972,4713],{"className":4707},[966],"gis:raster-world-envelope ",[969,4710,4153],{},[969,4712,3593],{},[969,4714,3596],{},[33,4716,4717,4718,175],{},"Reports the GIS envelope needed to match the boundaries of NetLogo\npatches with the boundaries of cells in the given raster dataset.\nThis envelope could then be used as an argument to ",[1071,4719,4720],{"displayText":1084,"permalink":12},[16,4721,1084],{"href":4722,"rel":4723,"className":4724,"dataDisplayText":1084,"target":1080,"title":1084},"/gis#set-transformation-ds",[1077],[1079],[33,4726,4727,4728,4736,4737,4230],{},"There may be more cells in the dataset than there are patches in\nthe NetLogo world. In that case, you will need to select a subset\nof cells in the dataset by specifying which cell in the dataset you\nwant to match with the upper-left corner of the NetLogo world.\nCells are numbered from left to right, and from top to bottom,\nbeginning with zero. So the upper left cell is (0, 0), and the\nbottom right cell is (",[131,4729,4730,972,4733],{},[230,4731,734],{"className":4732},[995,996],[230,4734,1940],{"className":4735},[995,996]," - 1, ",[131,4738,4739,972,4742],{},[230,4740,744],{"className":4741},[995,996],[230,4743,1940],{"className":4744},[995,996],[217,4746,220,4749,220,4754,4775],{"className":4747,"id":4748},[946],"create-raster",[40,4750,951,4752,220],{"id":4751},"giscreate-raster",[16,4753,834],{"href":831},[955,4755,4758],{"id":4756,"className":4757},"giscreate-raster-width-height-envelope",[14],[16,4759,951,4762,220],{"className":4760,"href":4761},[19],"#----giscreate-raster-width-height-envelope--",[230,4763,4765,4766,972,4769,972,4772],{"className":4764},[966],"gis:create-raster ",[969,4767,4768],{},"width",[969,4770,4771],{},"height",[969,4773,4774],{},"envelope",[33,4776,4777],{},"Creates and reports a new, empty raster dataset with the given\nnumber of columns and rows, covering the given envelope.",[217,4779,220,4782,220,4787,4807],{"className":4780,"id":4781},[946],"resample",[40,4783,951,4785,220],{"id":4784},"gisresample",[16,4786,844],{"href":841},[955,4788,4791],{"id":4789,"className":4790},"gisresample-raster-dataset-envelope-width-height",[14],[16,4792,951,4795,220],{"className":4793,"href":4794},[19],"#----gisresample-raster-dataset-envelope-width-height--",[230,4796,4798,4799,972,4801,972,4803,972,4805],{"className":4797},[966],"gis:resample ",[969,4800,4153],{},[969,4802,4774],{},[969,4804,4768],{},[969,4806,4771],{},[33,4808,4809,4810,4816,4817,4819],{},"Reports a new dataset that consists of the given RasterDataset\nresampled to cover the given envelope and to contain the given\nnumber of columns and rows. If the new raster’s cells are\nsmaller than the existing raster’s cells, they will be\nresampled using the method set by ",[1071,4811,4812],{"displayText":804,"permalink":12},[16,4813,804],{"href":4684,"rel":4814,"className":4815,"dataDisplayText":804,"target":1080,"title":804},[1077],[1079],". If the new\ncells are larger than the original cells, they will be sampled\nusing the ",[131,4818,4398],{}," method.",[217,4821,220,4824,220,4829,4858,4861,4864,4867,4898,4906,4945,4948],{"className":4822,"id":4823},[946],"convolve",[40,4825,951,4827,220],{"id":4826},"gisconvolve",[16,4828,854],{"href":851},[955,4830,4833],{"id":4831,"className":4832},"gisconvolve-raster-dataset-kernel-rows-kernel-columns-kernel-key-column-key-row",[14],[16,4834,951,4837,220],{"className":4835,"href":4836},[19],"#----gisconvolve-raster-dataset-kernel-rows-kernel-columns-kernel-key-column-key-row--",[230,4838,4840,4841,972,4843,972,4846,972,4849,972,4852,972,4855],{"className":4839},[966],"gis:convolve ",[969,4842,4153],{},[969,4844,4845],{},"kernel-rows",[969,4847,4848],{},"kernel-columns",[969,4850,4851],{},"kernel",[969,4853,4854],{},"key-column",[969,4856,4857],{},"key-row",[33,4859,4860],{},"Reports a new raster whose data consists of the given raster\nconvolved with the given kernel.",[33,4862,4863],{},"A convolution is a mathematical operation that computes each output\ncell by multiplying elements of a kernel with the cell values\nsurrounding a particular source cell. A kernel is a matrix of\nvalues, with one particular value defined as the “key\nelement”, the value that is centered over the source cell\ncorresponding to the destination cell whose value is being\ncomputed.",[33,4865,4866],{},"The values of the kernel matrix are given as a list, which\nenumerates the elements of the matrix from left to right, top to\nbottom. So the elements of a 3-by-3 matrix would be listed in the\nfollowing order:\n",[217,4868,4870],{"className":4869},[1123],[1125,4871,4872],{"width":3874,"border":1128,"style":3782,"align":3875},[1132,4873,4874,4882,4890],{},[1135,4875,220,4876,4878,4880],{},[1138,4877,3882],{},[1138,4879,3885],{},[1138,4881,3888],{},[1135,4883,220,4884,4886,4888],{},[1138,4885,3893],{},[1138,4887,3896],{},[1138,4889,3899],{},[1135,4891,220,4892,4894,4896],{},[1138,4893,3904],{},[1138,4895,3907],{},[1138,4897,3910],{},[33,4899,4900,4901,4905],{},"The key element is specified by column and row within the matrix.\nColumns are numbered from left to right, beginning with zero. Rows\nare numbered from top to bottom, also beginning with zero. So, for\nexample, the kernel for the horizontal ",[16,4902,4904],{"href":4903,"target":173},"https://en.wikipedia.org/wiki/Sobel_operator","Sobel operator",",\nwhich looks like this:\n",[217,4907,4909],{"className":4908},[1123],[1125,4910,4911],{"width":3874,"border":1128,"style":3782,"align":3875},[1132,4912,4913,4922,4937],{},[1135,4914,220,4915,4917,4919],{},[1138,4916,3882],{},[1138,4918,4057],{},[1138,4920,4921],{}," -1 ",[1135,4923,220,4924,4926,4934],{},[1138,4925,3885],{},[1138,4927,4057,4928,972,4930,972],{},[1046,4929],{},[4931,4932,4933],"small",{},"(key)",[1138,4935,4936],{}," -2 ",[1135,4938,220,4939,4941,4943],{},[1138,4940,3882],{},[1138,4942,4057],{},[1138,4944,4921],{},[33,4946,4947],{},"would be specified as follows:",[987,4949,4950],{},[131,4951,4952,972,4955,972,4959,972,4962,972,4965,972,4968,2261,4971,972,4974,972,4977,972,4981,972,4984,972,4987,972,4991,972,4994,972,4997,5000,5001,972,5004],{},[230,4953,1640],{"className":4954},[995,1639],[230,4956,4958],{"className":4957},[995,996],"horizontal-gradient",[230,4960,854],{"className":4961},[995,996],[230,4963,1940],{"className":4964},[995,996],[230,4966,3793],{"className":4967},[995,1030],[230,4969,3793],{"className":4970},[995,1030],[230,4972,1691],{"className":4973},[995,1030],[230,4975,1672],{"className":4976},[995,1030],[230,4978,4980],{"className":4979},[995,1030],"-1",[230,4982,3790],{"className":4983},[995,1030],[230,4985,1672],{"className":4986},[995,1030],[230,4988,4990],{"className":4989},[995,1030],"-2",[230,4992,1691],{"className":4993},[995,1030],[230,4995,1672],{"className":4996},[995,1030],[230,4998,4980],{"className":4999},[995,1030],"] ",[230,5002,1691],{"className":5003},[995,1030],[230,5005,1691],{"className":5006},[995,1030],[217,5008,220,5011,220,5016,5032],{"className":5009,"id":5010},[946],"apply-raster",[40,5012,951,5014,220],{"id":5013},"gisapply-raster",[16,5015,864],{"href":861},[955,5017,5020],{"id":5018,"className":5019},"gisapply-raster-raster-dataset-patch-variable",[14],[16,5021,951,5024,220],{"className":5022,"href":5023},[19],"#----gisapply-raster-raster-dataset-patch-variable--",[230,5025,5027,5028,972,5030],{"className":5026},[966],"gis:apply-raster ",[969,5029,4153],{},[969,5031,2004],{},[33,5033,5034,5035,5041,5042,5048,5049,5055],{},"Copies values from the given raster dataset to the given patch\nvariable, resampling the raster as necessary so that its cell\nboundaries match up with NetLogo patch boundaries. This resampling\nis done as if using ",[1071,5036,5037],{"displayText":844,"permalink":12},[16,5038,844],{"href":4374,"rel":5039,"className":5040,"dataDisplayText":844,"target":1080,"title":844},[1077],[1079]," rather\nthan ",[1071,5043,5044],{"displayText":814,"permalink":12},[16,5045,814],{"href":4366,"rel":5046,"className":5047,"dataDisplayText":814,"target":1080,"title":814},[1077],[1079],", for the sake\nof efficiency. However, patches not covered by the raster are\nassigned values of “not a number” in the same way that\n",[1071,5050,5051],{"displayText":814,"permalink":12},[16,5052,814],{"href":4366,"rel":5053,"className":5054,"dataDisplayText":814,"target":1080,"title":814},[1077],[1079]," reports values for\nlocations outside the raster.",[217,5057,220,5060,220,5065,5076],{"className":5058,"id":5059},[946],"drawing-color",[40,5061,951,5063,220],{"id":5062},"gisdrawing-color",[16,5064,883],{"href":880},[955,5066,5069],{"id":5067,"className":5068},"gisdrawing-color-1",[14],[16,5070,951,5073,220],{"className":5071,"href":5072},[19],"#----gisdrawing-color---1",[230,5074,883],{"className":5075},[966],[33,5077,5078,5079,5083],{},"Reports the color used by the GIS extension to draw vector features\ninto the NetLogo drawing layer. Color can be represented either as\na NetLogo color (a single number between zero and 140) or an RGB\ncolor (a list of 3 numbers). See details in the ",[16,5080,5082],{"href":5081},"/programming.html#colors","Colors"," section of the\nProgramming Guide.",[217,5085,220,5088,220,5093,5107],{"className":5086,"id":5087},[946],"set-drawing-color",[40,5089,951,5091,220],{"id":5090},"gisset-drawing-color",[16,5092,893],{"href":890},[955,5094,5097],{"id":5095,"className":5096},"gisset-drawing-color-color",[14],[16,5098,951,5101,220],{"className":5099,"href":5100},[19],"#----gisset-drawing-color-color--",[230,5102,5104,5105],{"className":5103},[966],"gis:set-drawing-color ",[969,5106,4660],{},[33,5108,5109,5110,5113,5114,5116],{},"Sets the color used by the GIS extension to draw vector features\ninto the NetLogo drawing layer. ",[980,5111,5112],{},"Color"," can be represented\neither as a NetLogo color (a single number between zero and 140) or\nan RGB color (a list of 3 numbers). See details in the ",[16,5115,5082],{"href":5081}," section of the Programming Guide.",[217,5118,220,5121,220,5126,5144],{"className":5119,"id":5120},[946],"draw",[40,5122,951,5124,220],{"id":5123},"gisdraw",[16,5125,903],{"href":900},[955,5127,5130],{"id":5128,"className":5129},"gisdraw-vector-data-line-thickness",[14],[16,5131,951,5134,220],{"className":5132,"href":5133},[19],"#----gisdraw-vector-data-line-thickness--",[230,5135,5137,5138,972,5141],{"className":5136},[966],"gis:draw ",[969,5139,5140],{},"vector-data",[969,5142,5143],{},"line-thickness",[33,5145,5146],{},"Draws the given vector data to the NetLogo drawing layer, using the\ncurrent GIS drawing color, with the given line thickness. The data\nmay consist either of an entire VectorDataset, or a single\nVectorFeature. This primitive draws only the boundary of polygon\ndata, and for point data, it fills a circle with a radius equal to\nthe line thickness.",[217,5148,220,5151,220,5156,5172],{"className":5149,"id":5150},[946],"fill",[40,5152,951,5154,220],{"id":5153},"gisfill",[16,5155,913],{"href":910},[955,5157,5160],{"id":5158,"className":5159},"gisfill-vector-data-line-thickness",[14],[16,5161,951,5164,220],{"className":5162,"href":5163},[19],"#----gisfill-vector-data-line-thickness--",[230,5165,5167,5168,972,5170],{"className":5166},[966],"gis:fill ",[969,5169,5140],{},[969,5171,5143],{},[33,5173,5174],{},"Fills the given vector data in the NetLogo drawing layer using the\ncurrent GIS drawing color, using the given line thickness around\nthe edges. The data may consist either of an entire VectorDataset,\nor a single VectorFeature. For point data, it fills a circle with a\nradius equal to the line thickness.",[217,5176,220,5179,220,5184,5201,5204],{"className":5177,"id":5178},[946],"paint",[40,5180,951,5182,220],{"id":5181},"gispaint",[16,5183,923],{"href":920},[955,5185,5188],{"id":5186,"className":5187},"gispaint-raster-dataset-transparency",[14],[16,5189,951,5192,220],{"className":5190,"href":5191},[19],"#----gispaint-raster-dataset-transparency--",[230,5193,5195,5196,972,5198],{"className":5194},[966],"gis:paint ",[969,5197,4153],{},[969,5199,5200],{},"transparency",[33,5202,5203],{},"Paints the given raster data to the NetLogo drawing layer. The\nhighest value in the dataset is painted white, the lowest is\npainted in black, and the other values are painted in shades of\ngray scaled linearly between white and black.",[33,5205,5206,5207,5209],{},"The ",[980,5208,5200],{}," input determines how transparent the new\nimage in the drawing will be. Valid inputs range from 0 (completely\nopaque) to 255 (completely transparent).",[217,5211,220,5214,220,5219,5242,5254,5280,5290],{"className":5212,"id":5213},[946],"import-wms-drawing",[40,5215,951,5217,220],{"id":5216},"gisimport-wms-drawing",[16,5218,933],{"href":930},[955,5220,5223],{"id":5221,"className":5222},"gisimport-wms-drawing-server-url-spatial-reference-layers-transparency",[14],[16,5224,951,5227,220],{"className":5225,"href":5226},[19],"#----gisimport-wms-drawing-server-url-spatial-reference-layers-transparency--",[230,5228,5230,5231,972,5234,972,5237,972,5240],{"className":5229},[966],"gis:import-wms-drawing ",[969,5232,5233],{},"server-url",[969,5235,5236],{},"spatial-reference",[969,5238,5239],{},"layers",[969,5241,5200],{},[33,5243,5244,5245,5249,5250,175],{},"Imports an image into the NetLogo drawing layer using the\n",[16,5246,5248],{"href":5247,"target":173},"http://www.opengeospatial.org/standards/wms","Web Mapping Service","\nprotocol, as defined by the ",[16,5251,5253],{"href":5252,"target":173},"http://www.opengeospatial.org/","\nOpen Geospatial Consortium",[33,5255,5206,5256,982,5259,5261,5262,5264,5265,5268,5269,5272,5273,5275,5276,5279],{},[980,5257,5258],{},"spatial reference",[980,5260,5239],{}," inputs should be\ngiven as strings. The ",[980,5263,5258],{}," input corresponds to\nthe ",[107,5266,5267],{},"SRS"," parameter to the ",[107,5270,5271],{},"GetMap"," request as defined in\nsection 7.2.3.5 of version 1.1.1 of the WMS standard. The\n",[980,5274,5239],{}," input corresponds to the ",[107,5277,5278],{},"LAYERS"," parameter to\nthe as defined in 7.2.3.3 of version 1.1.1 of the WMS standard.",[33,5281,5282,5283,5286,5287,5289],{},"You can find the list of valid spatial reference codes and layer\nnames by examining the response to a ",[107,5284,5285],{},"GetCapabilities"," request\nto the WMS server. Consult the relevant standard for instructions\non how to issue a ",[107,5288,5285],{}," request to the server and\nhow to interpret the results.",[33,5291,5206,5292,5209],{},[980,5293,5200],{},{"title":1144,"searchDepth":5295,"depth":3810,"links":5296},5,[5297,5302],{"id":25,"depth":3789,"text":31,"children":5298},[5299,5300,5301],{"id":42,"depth":3810,"text":48},{"id":120,"depth":3810,"text":126},{"id":148,"depth":3810,"text":154},{"id":193,"depth":3789,"text":199,"children":5303},[5304,5305,5306,5307,5308,5309,5310,5316,5321,5326,5331,5335,5340,5345,5350,5355,5360,5365,5370,5375,5380,5385,5390,5395,5400,5405,5410,5415,5420,5425,5430,5435,5440,5445,5450,5455,5460,5465,5470,5475,5480,5485,5490,5495,5500,5504,5509,5513,5518,5523,5528,5533,5538,5543,5548,5553,5558,5563,5568,5573,5578,5583,5588,5593,5598,5603,5608,5613,5618,5622,5627,5632,5637,5642],{"id":209,"depth":3810,"text":215},{"id":335,"depth":3810,"text":341},{"id":402,"depth":3810,"text":408},{"id":718,"depth":3810,"text":724},{"id":867,"depth":3810,"text":873},{"id":936,"depth":3810,"text":942},{"id":950,"depth":3810,"text":5311,"children":5312},"\n    gis:set-transformation\n  ",[5313],{"id":957,"depth":5314,"text":5315},4,"\n    gis:set-transformation gis-envelope netlogo-envelope\n  ",{"id":1087,"depth":3810,"text":5317,"children":5318},"\n    gis:set-transformation-ds\n  ",[5319],{"id":1092,"depth":5314,"text":5320},"\n    gis:set-transformation-ds gis-envelope netlogo-envelope\n  ",{"id":1180,"depth":3810,"text":5322,"children":5323},"\n    gis:set-world-envelope\n  ",[5324],{"id":1185,"depth":5314,"text":5325},"\n    gis:set-world-envelope gis-envelope\n  ",{"id":1235,"depth":3810,"text":5327,"children":5328},"\n    gis:set-world-envelope-ds\n  ",[5329],{"id":1240,"depth":5314,"text":5330},"\n    gis:set-world-envelope-ds gis-envelope\n  ",{"id":1294,"depth":3810,"text":5332,"children":5333},"\n    gis:world-envelope\n  ",[5334],{"id":1299,"depth":5314,"text":5332},{"id":1333,"depth":3810,"text":5336,"children":5337},"\n    gis:envelope-of\n  ",[5338],{"id":1338,"depth":5314,"text":5339},"\n    gis:envelope-of thing\n  ",{"id":1382,"depth":3810,"text":5341,"children":5342},"\n    gis:envelope-union-of\n  ",[5343],{"id":1387,"depth":5314,"text":5344},"\n    gis:envelope-union-of envelope1 envelope2\n    gis:envelope-union-of envelope1...\n  ",{"id":1437,"depth":3810,"text":5346,"children":5347},"\n    gis:load-coordinate-system\n  ",[5348],{"id":1442,"depth":5314,"text":5349},"\n    gis:load-coordinate-system file\n  ",{"id":1546,"depth":3810,"text":5351,"children":5352},"\n    gis:set-coordinate-system\n  ",[5353],{"id":1551,"depth":5314,"text":5354},"\n    gis:set-coordinate-system system\n  ",{"id":1586,"depth":3810,"text":5356,"children":5357},"\n    gis:project-lat-lon\n  ",[5358],{"id":1591,"depth":5314,"text":5359},"\n    gis:project-lat-lon latitude longitude\n  ",{"id":1712,"depth":3810,"text":5361,"children":5362},"\n    gis:project-lat-lon-from-ellipsoid\n  ",[5363],{"id":1717,"depth":5314,"text":5364},"\n    gis:project-lat-lon-from-ellipsoid latitude longitude ellipsoid-radius ellipsoid-inverse-flattening\n  ",{"id":1814,"depth":3810,"text":5366,"children":5367},"\n    gis:load-dataset\n  ",[5368],{"id":1819,"depth":5314,"text":5369},"\n    gis:load-dataset file\n  ",{"id":1923,"depth":3810,"text":5371,"children":5372},"\n    gis:store-dataset\n  ",[5373],{"id":1928,"depth":5314,"text":5374},"\n    gis:store-dataset dataset file\n  ",{"id":1961,"depth":3810,"text":5376,"children":5377},"\n    gis:type-of\n  ",[5378],{"id":1966,"depth":5314,"text":5379},"\n    gis:type-of dataset\n  ",{"id":1987,"depth":3810,"text":5381,"children":5382},"\n    gis:patch-dataset\n  ",[5383],{"id":1992,"depth":5314,"text":5384},"\n    gis:patch-dataset patch-variable\n  ",{"id":2029,"depth":3810,"text":5386,"children":5387},"\n    gis:turtle-dataset\n  ",[5388],{"id":2034,"depth":5314,"text":5389},"\n    gis:turtle-dataset turtle-set\n  ",{"id":2056,"depth":3810,"text":5391,"children":5392},"\n    gis:link-dataset\n  ",[5393],{"id":2061,"depth":5314,"text":5394},"\n    gis:link-dataset link-set\n  ",{"id":2083,"depth":3810,"text":5396,"children":5397},"\n    gis:shape-type-of\n  ",[5398],{"id":2088,"depth":5314,"text":5399},"\n    gis:shape-type-of vector-dataset\n  ",{"id":2110,"depth":3810,"text":5401,"children":5402},"\n    gis:property-names\n  ",[5403],{"id":2115,"depth":5314,"text":5404},"\n    gis:property-names vector-dataset\n  ",{"id":2138,"depth":3810,"text":5406,"children":5407},"\n    gis:feature-list-of\n  ",[5408],{"id":2143,"depth":5314,"text":5409},"\n    gis:feature-list-of vector-dataset\n  ",{"id":2164,"depth":3810,"text":5411,"children":5412},"\n    gis:vertex-lists-of\n  ",[5413],{"id":2169,"depth":5314,"text":5414},"\n    gis:vertex-lists-of vector-feature\n  ",{"id":2191,"depth":3810,"text":5416,"children":5417},"\n    gis:centroid-of\n  ",[5418],{"id":2196,"depth":5314,"text":5419},"\n    gis:centroid-of vector-feature\n  ",{"id":2222,"depth":3810,"text":5421,"children":5422},"\n    gis:random-point-inside\n  ",[5423],{"id":2227,"depth":5314,"text":5424},"\n    gis:random-point-inside vector-feature\n  ",{"id":2325,"depth":3810,"text":5426,"children":5427},"\n    gis:location-of\n  ",[5428],{"id":2330,"depth":5314,"text":5429},"\n    gis:location-of vertex\n  ",{"id":2352,"depth":3810,"text":5431,"children":5432},"\n    gis:set-property-value\n  ",[5433],{"id":2357,"depth":5314,"text":5434},"\n    gis:set-property-value vector-feature property-name value\n  ",{"id":2384,"depth":3810,"text":5436,"children":5437},"\n    gis:property-value\n  ",[5438],{"id":2389,"depth":5314,"text":5439},"\n    gis:property-value vector-feature property-name\n  ",{"id":2444,"depth":3810,"text":5441,"children":5442},"\n    gis:find-features\n  ",[5443],{"id":2449,"depth":5314,"text":5444},"\n    gis:find-features vector-dataset property-name specified-value\n  ",{"id":2487,"depth":3810,"text":5446,"children":5447},"\n    gis:find-one-feature\n  ",[5448],{"id":2492,"depth":5314,"text":5449},"\n    gis:find-one-feature vector-dataset property-name specified-value\n  ",{"id":2530,"depth":3810,"text":5451,"children":5452},"\n    gis:find-less-than\n  ",[5453],{"id":2535,"depth":5314,"text":5454},"\n    gis:find-less-than vector-dataset property-name value\n  ",{"id":2571,"depth":3810,"text":5456,"children":5457},"\n    gis:find-greater-than\n  ",[5458],{"id":2576,"depth":5314,"text":5459},"\n    gis:find-greater-than vector-dataset property-name value\n  ",{"id":2607,"depth":3810,"text":5461,"children":5462},"\n    gis:find-range\n  ",[5463],{"id":2612,"depth":5314,"text":5464},"\n    gis:find-range vector-dataset property-name minimum-value maximum-value\n  ",{"id":2651,"depth":3810,"text":5466,"children":5467},"\n    gis:property-minimum\n  ",[5468],{"id":2656,"depth":5314,"text":5469},"\n    gis:property-minimum vector-dataset property-name\n  ",{"id":2681,"depth":3810,"text":5471,"children":5472},"\n    gis:property-maximum\n  ",[5473],{"id":2686,"depth":5314,"text":5474},"\n    gis:property-maximum vector-dataset property-name\n  ",{"id":2711,"depth":3810,"text":5476,"children":5477},"\n    gis:apply-coverage\n  ",[5478],{"id":2716,"depth":5314,"text":5479},"\n    gis:apply-coverage vector-dataset property-name patch-variable\n  ",{"id":2762,"depth":3810,"text":5481,"children":5482},"\n    gis:create-turtles-from-points\n  ",[5483],{"id":2767,"depth":5314,"text":5484},"\n    gis:create-turtles-from-points vector-dataset breed commands\n  ",{"id":2948,"depth":3810,"text":5486,"children":5487},"\n    gis:create-turtles-from-points-manual\n  ",[5488],{"id":2953,"depth":5314,"text":5489},"\n    gis:create-turtles-from-points-manual vector-dataset breed property-mapping commands\n  ",{"id":3151,"depth":3810,"text":5491,"children":5492},"\n    gis:create-turtles-inside-polygon\n  ",[5493],{"id":3156,"depth":5314,"text":5494},"\n    gis:create-turtles-inside-polygon vector-feature breed n commands\n  ",{"id":3376,"depth":3810,"text":5496,"children":5497},"\n    gis:create-turtles-inside-polygon-manual\n  ",[5498],{"id":3381,"depth":5314,"text":5499},"\n    gis:create-turtles-inside-polygon-manual vector-feature breed n property-mapping commands\n  ",{"id":3452,"depth":3810,"text":5501,"children":5502},"\n    gis:coverage-minimum-threshold\n  ",[5503],{"id":3457,"depth":5314,"text":5501},{"id":3482,"depth":3810,"text":5505,"children":5506},"\n    gis:set-coverage-minimum-threshold\n  ",[5507],{"id":3487,"depth":5314,"text":5508},"\n    gis:set-coverage-minimum-threshold new-threshold\n  ",{"id":3515,"depth":3810,"text":5510,"children":5511},"\n    gis:coverage-maximum-threshold\n  ",[5512],{"id":3520,"depth":5314,"text":5510},{"id":3544,"depth":3810,"text":5514,"children":5515},"\n    gis:set-coverage-maximum-threshold\n  ",[5516],{"id":3549,"depth":5314,"text":5517},"\n    gis:set-coverage-maximum-threshold new-threshold\n  ",{"id":3576,"depth":3810,"text":5519,"children":5520},"\n    gis:intersects?\n  ",[5521],{"id":3581,"depth":5314,"text":5522},"\n    gis:intersects? x y\n  ",{"id":3629,"depth":3810,"text":5524,"children":5525},"\n    gis:contains?\n  ",[5526],{"id":3634,"depth":5314,"text":5527},"\n    gis:contains? x y\n  ",{"id":3679,"depth":3810,"text":5529,"children":5530},"\n    gis:contained-by?\n  ",[5531],{"id":3684,"depth":5314,"text":5532},"\n    gis:contained-by? x y\n  ",{"id":3727,"depth":3810,"text":5534,"children":5535},"\n    gis:have-relationship?\n  ",[5536],{"id":3732,"depth":5314,"text":5537},"\n    gis:have-relationship? x y\n  ",{"id":3963,"depth":3810,"text":5539,"children":5540},"\n    gis:relationship-of\n  ",[5541],{"id":3968,"depth":5314,"text":5542},"\n    gis:relationship-of x y\n  ",{"id":4104,"depth":3810,"text":5544,"children":5545},"\n    gis:intersecting\n  ",[5546],{"id":4109,"depth":5314,"text":5547},"\n    patch-set gis:intersecting data\n  ",{"id":4136,"depth":3810,"text":5549,"children":5550},"\n    gis:width-of\n  ",[5551],{"id":4141,"depth":5314,"text":5552},"\n    gis:width-of raster-dataset\n  ",{"id":4163,"depth":3810,"text":5554,"children":5555},"\n    gis:height-of\n  ",[5556],{"id":4168,"depth":5314,"text":5557},"\n    gis:height-of raster-dataset\n  ",{"id":4189,"depth":3810,"text":5559,"children":5560},"\n    gis:raster-value\n  ",[5561],{"id":4194,"depth":5314,"text":5562},"\n    gis:raster-value raster-dataset x y\n  ",{"id":4237,"depth":3810,"text":5564,"children":5565},"\n    gis:set-raster-value\n  ",[5566],{"id":4242,"depth":5314,"text":5567},"\n    gis:set-raster-value raster-dataset x y value\n  ",{"id":4290,"depth":3810,"text":5569,"children":5570},"\n    gis:minimum-of\n  ",[5571],{"id":4295,"depth":5314,"text":5572},"\n    gis:minimum-of raster-dataset\n  ",{"id":4316,"depth":3810,"text":5574,"children":5575},"\n    gis:maximum-of\n  ",[5576],{"id":4321,"depth":5314,"text":5577},"\n    gis:maximum-of raster-dataset\n  ",{"id":4342,"depth":3810,"text":5579,"children":5580},"\n    gis:sampling-method-of\n  ",[5581],{"id":4347,"depth":5314,"text":5582},"\n    gis:sampling-method-of raster-dataset\n  ",{"id":4442,"depth":3810,"text":5584,"children":5585},"\n    gis:set-sampling-method\n  ",[5586],{"id":4447,"depth":5314,"text":5587},"\n    gis:set-sampling-method raster-dataset sampling-method\n  ",{"id":4524,"depth":3810,"text":5589,"children":5590},"\n    gis:raster-sample\n  ",[5591],{"id":4529,"depth":5314,"text":5592},"\n    gis:raster-sample raster-dataset sample-location\n  ",{"id":4694,"depth":3810,"text":5594,"children":5595},"\n    gis:raster-world-envelope\n  ",[5596],{"id":4699,"depth":5314,"text":5597},"\n    gis:raster-world-envelope raster-dataset x y\n  ",{"id":4751,"depth":3810,"text":5599,"children":5600},"\n    gis:create-raster\n  ",[5601],{"id":4756,"depth":5314,"text":5602},"\n    gis:create-raster width height envelope\n  ",{"id":4784,"depth":3810,"text":5604,"children":5605},"\n    gis:resample\n  ",[5606],{"id":4789,"depth":5314,"text":5607},"\n    gis:resample raster-dataset envelope width height\n  ",{"id":4826,"depth":3810,"text":5609,"children":5610},"\n    gis:convolve\n  ",[5611],{"id":4831,"depth":5314,"text":5612},"\n    gis:convolve raster-dataset kernel-rows kernel-columns kernel key-column key-row\n  ",{"id":5013,"depth":3810,"text":5614,"children":5615},"\n    gis:apply-raster\n  ",[5616],{"id":5018,"depth":5314,"text":5617},"\n    gis:apply-raster raster-dataset patch-variable\n  ",{"id":5062,"depth":3810,"text":5619,"children":5620},"\n    gis:drawing-color\n  ",[5621],{"id":5067,"depth":5314,"text":5619},{"id":5090,"depth":3810,"text":5623,"children":5624},"\n    gis:set-drawing-color\n  ",[5625],{"id":5095,"depth":5314,"text":5626},"\n    gis:set-drawing-color color\n  ",{"id":5123,"depth":3810,"text":5628,"children":5629},"\n    gis:draw\n  ",[5630],{"id":5128,"depth":5314,"text":5631},"\n    gis:draw vector-data line-thickness\n  ",{"id":5153,"depth":3810,"text":5633,"children":5634},"\n    gis:fill\n  ",[5635],{"id":5158,"depth":5314,"text":5636},"\n    gis:fill vector-data line-thickness\n  ",{"id":5181,"depth":3810,"text":5638,"children":5639},"\n    gis:paint\n  ",[5640],{"id":5186,"depth":5314,"text":5641},"\n    gis:paint raster-dataset transparency\n  ",{"id":5216,"depth":3810,"text":5643,"children":5644},"\n    gis:import-wms-drawing\n  ",[5645],{"id":5221,"depth":5314,"text":5646},"\n    gis:import-wms-drawing server-url spatial-reference layers transparency\n  ","Documentation for the GIS extension.","md",{"source":5650,"metadataOutputPath":5651,"projectConfig":5652,"language":5659,"inheritFrom":5667,"output":5666,"version":5653,"netlogoUrl":5668,"icon":5669,"extensionName":5670,"assetsRoot":5654},"../../external/extensions/gis/gis.md","content/gis.metadata.yaml",{"version":5653,"projectRoot":175,"scanRoot":5654,"outputRoot":5655,"defaults":5656,"engine":5662,"partials":5663,"dedupeIdenticalDiskWrites":5666},"7.0.4","/home/runner/work/Helio/Helio/external/extensions/gis","content",{"inheritFrom":5657,"language":5659,"output":5660,"extension":5648,"title":5661,"version":5653},[5658],0,"en",false,"NetLogo User Manual","mustache",{"directoryPaths":5664,"extensions":5665},[175],[5662,5648],true,[5658],"http://ccl.northwestern.edu/netlogo/docs/","i-lucide-map-pin",{"shortName":12,"fullName":21},"/gis",{"title":5,"description":5647},"pMhJ_C-0Nli8lujVqnjRfDeXV4AXY1MNES1R34BKzDg",[5675,5680],{"title":5676,"path":5677,"stem":5678,"description":5679},"Frequently Asked Questions","/faq","faq","Answers to frequently asked questions about NetLogo, covering common issues, usage patterns, and troubleshooting tips.",{"title":5681,"path":5682,"stem":5683,"description":5684},"GIS Extension Dictionary: apply-coverage","/gis/apply-coverage","gis/apply-coverage","Documentation for the apply-coverage primitive.",1777657789653]