Survey Experiment

Survey Experiment preview image

1 collaborator

Default-person Isaac Ullah (Author)


(This model has yet to be categorized with any tags)
Visible to everyone | Changeable by everyone
Model was written in NetLogo 6.1.1 • Viewed 25 times • Downloaded 1 time • Run 0 times
Download the 'Survey Experiment' modelDownload this modelEmbed this model

Do you have questions or comments about this model? Ask them here! (You'll first need to log in.)


This is a very simple interactive tool for setting up experiments about sampling strategies for archaeological survey and prospection.


You first seed the landscape with a random or clustered set of "artifacts" (but these could be sites or anything else in practice). You then create a set of sampling patches either by randomly distributing them, uniformly laying out on a grid, or by judgmentally placing them by clicking on the map. You can combine techniques for a "stratified" approach as well. Finally, the program will then count up the number of "artifacts" that were detected and calculate the positivity rate and the statistically extrapolated estimate of the total number of "artifacts" that would be predicted from the sample. A "good" sampling strategy for a given distribution of artifacts would predict an extrapolated count that closely matches the actual total number of artifacts that were seeded across the landscape.

The landscape consists of a 50 x 50 grid of survey patches (2500 total landscape patches). The simulated survey landscape is scale-free, so there is no specific spatial scale to the patches. It may, however, be useful to imagine the landscape at a familiar scale, such as a series of 1x1 meter grid squares, to help you visualize these results in a "real world" context.


First, set up the artifact distribution. The num_artifacts sets the total number of artifacts, and the artifact_clustering slider sets up the way they are distributed across the landscape. If artifact_clustering is set to 0, then a true Gaussian random distribution of artifacts is used. If set to 1 or higher, then artifacts are randomly distributed within a 5-cell radius of a set of cluster centers. The number of cluster centers is the same as the value set by artifact_clustering (i.e., artifact_cluster of 5 will make 5 clusters, etc.). Use the Setup Artifact Distribution button to place the artifacts. Clicking this button will erase any previous distributions or results, and reset the experiment. Note that for some values of artifact_clustering, the actual number of artifacts may be automatically adjusted to evenly divide artifacts across clusters. In these cases you will see the value of num_artifacts change after you click the *Setup Artifact Distribution" button.

Once the artifacts are distributed, you can optionally use the hide some artifacts button in conjunction with the proportion_hid slider to hid a portion of the artifacts from view. This simulates, for example, the difference between artifacts that are on the surface, and those that may be buried. It is useful for removing bias when setting up your survey patches.

Next you will need to set up your survey patches. There are three tools that you can use for this, and they can be used separately or in any combination. As you add survey patches, they will turn blue on the map.

The Select n random survey patches tool works in conjunction with the n slider to randomly distribute some number of survey patches around the landscape.

The Setup a systematic grid of survey patches button is used in conjunction with the grid_size slider to create an evenly distributed sampling grid with survey patches at the grid intersections. The value of grid_size is the number of patches between each survey patch.

The Select survey patches judgmentally (interactive) button is used to interactively click on patches on the map to select them as survey patches. This is a "latching" button, so you must "unclick" it once you've finished your selection.

Once you have selected your patches, you can optionally click the Count survey patches button to quickly count the number of survey patches you've created. This is useful if you need to constrain the number of patches for your experiment (e.g., you are limited by time or budget to a set maximum number of survey patches). You can also use the Reset survey patches button to blank out all previously selected patches. This is useful if you've made a mistake, gone over your survey patch limit, or if you want to keep the same artifact distribution, but test different survey patch arrangements.

Once your survey patches are set up, you can use the Display Results! button to quickly calculate a series of summary statistics and to change the color of the positive survey patches to green, and negative patches to red. Summary statistics include:

  • The sample size (% of the total landscape that was surveyed)
  • The raw count of discovered artifacts (artifacts that fell inside a survey patch)
  • The number of survey patches that contained some artifacts (positive patches)
  • The number of survey patches that had no artifacts (negative patches)
  • The percentage of the total number of artifacts that were discovered
  • The positivity rate (% of survey patches with artifacts in them)
  • The extrapolated estimate of the total number of artifacts based on the sampling proportion and the number of artifacts discovered in the survey patches.

This last figure is calculated as the number of artifacts discovered divided by the sample size (percent of landscape covered). If this number is close to the actual number of seeded artifacts (num_artifacts), then it can be concluded that the sampling strategy is effective.


Try increasing the cluster size. As it gets larger and large, the distribution of seed artifacts approaches a uniform distribution.

Try combining survey sampling strategies. You can, for example, create a "stratified random" sampling strategy by combining an overall random distribution with some interactive (but randomly chosen) "clicked" sampling patches in a specific part of th map.


Set up an artifact distribution, and then using the "Reset survey patches" button to iteratively test through several different types of sampling strategies. This is especially useful if you used a random sampling strategy, as the placement of the actual sampling patches will be different each time.

Try iteratively increasing the number of survey patches, and note how the extrapolated prediction changes. Is it possible to "under sample" and get a prediction that is too small? Is it possible to "oversample" and get a prediction that is too large? Are you ever able to predict the exact number of artifacts? How big is the window of sample sizes where predicted results are reasonably accurate?


At the moment, the gridded sampling frame is only available as a symmetric square grid. It would be useful to add the functionality for rectangular, triangular, and hexagonal grids as well.


The DIDI and DICI models ( are also NetLogo models developed for survey experiments. This model is much simpler, and is aimed more at education than true statistical analysis of real survey strategies.


This model was created by Isaac I.T. Ullah, PhD, 2021, at San Diego State University. It is intended for educational purposes only, and comes with no warantee or guarantee of accuracy. The model derives from an analog sampling experiment lab created as part of ANTH 302 "Principles of Archaeology." It is available under the GNU public license, and is published on the web at Please cite the author if you use this model in any publication.

Comments and Questions

Please start the discussion about this model! (You'll first need to log in.)

Click to Run Model

globals [artifact_count sample_size positives negatives percentage_found percentage_positive extrapolated_count num_patches]
breed [artifacts artifact]

to setup_artifacts
  ask patches [ set pcolor brown ]
  ifelse artifact_clustering = 0 [
    crt num_artifacts [ setxy random-xcor random-ycor ]
  ] [
    ask n-of artifact_clustering patches
     sprout ( num_artifacts / artifact_clustering )
        set xcor xcor + random-float 5.
        set ycor ycor + random-float 5.
    set num_artifacts count turtles
  ask turtles [ set shape "default" set size 0.6 set color black]

to hide_some_artifacts
  ask turtles [ set color black ]
  ask n-of (num_artifacts * proportion_hid) turtles [ set color brown ]

to show_artifacts
  ask turtles [ set color black ]

to random_patches
  ask n-of n patches [
   set pcolor blue

to systematic_patches
  let Grid grid_size
  ask patches with [pxcor mod Grid = 0 and pycor mod Grid = 0] [ set pcolor blue ]

to judgemental_patches
  if mouse-down?
    [ask patch mouse-xcor mouse-ycor
        [ set pcolor blue]

to reset_patches
  ask patches [ set pcolor brown ]

to count_patches
  set num_patches count patches with [ pcolor = blue ]

to get_results
    set artifact_count count turtles-on patches with [ pcolor = blue ]
    ask patches [
      if (pcolor = blue) and (any? turtles-here)
        [ set pcolor green]
      if pcolor = blue
        [ set pcolor red]
  set positives count patches with [ pcolor = green ]
  set negatives count patches with [ pcolor = red ]
  set sample_size ( (positives + negatives) / (count patches) ) * 100
  set percentage_found ( artifact_count / num_artifacts ) * 100
  set percentage_positive ( positives / ( positives + negatives ) ) * 100
  set extrapolated_count ( artifact_count / (sample_size / 100) )

There is only one version of this model, created 3 months ago by Isaac Ullah.

Attached files

File Type Description Last updated
Survey Experiment.png preview preview of model 3 months ago, by Isaac Ullah Download
Survey Experiment.png preview preview of model 3 months ago, by Isaac Ullah Download

This model does not have any ancestors.

This model does not have any descendants.