Data Importation Raster Images and shapefile Import

Julien Mazars edited this page May 20, 2016 · 4 revisions

Raster File and Shapefiles Import

Author : Maroussia Vavasseur and Benoit Gaudou

Model which imports data from a raster file and two shapefiles to initilalize a grid and two species. The roaster file initialize a grid attribute for the cells and the shapefiles a river species just with the same shape, and the managementUnit species with a link between the columns of the shapefile and the attributes of the species.

Code of the model :


model RasterAndShapefiles


 
global {
	// Constants
	int heightImg const: true <- 5587;
	int widthImg const: true <- 6201;	
	file boundsMNT const: true <- file("../images/mnt/boundsMNT.shp"); 
	
	
// The environment bounds are defined using the hand-made boundsMNT shapefile.
// This shapefile has been created as a georeferenced bounding box of the MNT raster image, using information of the .pgw file
	geometry shape <- envelope(boundsMNT);
	
	// Global variables related to the MNT
	file mntImageRaster <- image_file('../images/mnt/testAG.jpg') ;
	int factorDiscret  <- 10;
	
	// Global variables  related to the Management units	
	file ManagementUnitShape <- file('../images/ug/UGSelect.shp');
	
	// Global variables  related to the water network
	file waterShape <- file('../images/reseauHydro/reseauEau.shp');

	// Global variables  related to izard agents
	int nbIzard <- 25 ;
	file izardShape <-file('../images/icons/izard.gif') ;
		
	// Initialization of grid and creation of the izard agents.
	// Creation of managmentUnit and rivers agents from the corresponding shapefile
	init {
		create managementUnit from: ManagementUnitShape 
				with: [MUcode::int(read('Code_UG')), MULabel::string(read('Libelle_UG')), pgeSAGE::string(read('PGE_SAGE'))] ;
				
		create river from: waterShape;
				
		matrix<int> mapColor <- matrix<int>(mntImageRaster as_matrix {widthImg/factorDiscret,heightImg/factorDiscret}) ;
		ask cell {		
			color <- rgb( mapColor at {grid_x,grid_y} );
		}
		create izard number: nbIzard; 			
    }
}

species river {
	aspect default{
		draw shape color: #blue;
	}	
}

species managementUnit{
	int MUcode;
	string MULabel;
	string pgeSAGE;
	
	aspect default{
		draw shape;
	}
}	
species izard {	
	init{
		location <- (shuffle(cell) first_with ((each.color != #white) and (empty(izard inside each)))).location ;
	}	
	aspect default{
		draw square(5000) color: #orange;
	}
	aspect image{
		draw izardShape size: 5000;
	}
}	

// We create a grid as environment with the same dimensions as the matrix in which we want to store the image

grid cell width: widthImg/factorDiscret height: heightImg/factorDiscret;



experiment main type: gui {
	
	// We display:
	// - the original MNT image as background
	// - the grid representing the MNT
	// - izard agents
	// - the management unit shapefile
	// - the river shapefile
	// We can thus compare the original MNT image and the discretized image in the grid.
	// For cosmetic need, we can choose to not display the grid. 
	output {
		display HowToImportVectorial {
	        image 'Background' file: mntImageRaster.path;  		
	       	grid cell;
	 		species managementUnit transparency: 0.5;
	 		species river ;
	 		species izard aspect: image;  
		}
	}
}


Home

Introduction

Changes from 1.6.1 to 1.8

Platform

  1. Installation and Launching
  2. Installation
  3. Launching GAMA
  4. Headless Mode
  5. Updating GAMA
  6. Installing Plugins
  7. Troubleshooting
  8. Workspace, Projects and Models
  9. Navigating in the Workspace
  10. Changing Workspace
  11. Importing Models
  12. Editing Models
  13. GAML Editor (Generalities)
  14. GAML Editor Toolbar
  15. Validation of Models
  16. Running Experiments
  17. Launching Experiments
  18. Experiments User interface
  19. Menus and commands
  20. Parameters view
  21. Inspectors and monitors
  22. Displays
  23. Batch Specific UI
  24. Errors View
  25. Preferences

Learn GAML step by step

  1. Introduction
  2. Start with GAML
  3. Organization of a Model
  4. Basic programming concepts in GAML
  5. Manipulate basic Species
  6. Global Species
  7. Regular Species
  8. Defining Actions and Behaviors
  9. Interaction between Agents
  10. Attaching Skills
  11. Inheritance
  12. Defining Advanced Species
  13. Grid Species
  14. Graph Species
  15. Mirror Species
  16. Multi-Level Architecture
  17. Defining GUI Experiment
  18. Defining Parameters
  19. Defining Displays Generalities
  20. Defining Charts
  21. Defining 3D Displays
  22. Defining Monitors and Inspectors
  23. Defining Export files
  24. Defining User Interaction
  25. Exploring Models
  26. Run Several Simulations
  27. Batch Experiments
  28. Exploration Methods
  29. Optimizing Model Section
  30. Runtime Concepts
  31. Optimizing Models
  32. Multi-Paradigm Modeling
  33. Control Architecture
  34. Defining Equations

Recipes

  1. Manipulate OSM Datas
  2. Diffusion
  3. Using Database
  4. Calling R
  5. Using FIPA ACL
  6. Using GamAnalyzer
  7. Using BDI
  8. Using Driving Skill
  9. Manipulate dates
  10. Manipulate lights
  11. Using comodel
  12. Save and restore Simulations
  13. Using network
  14. Headless mode
  15. FAQ
  16. Known Issues

GAML References

  1. Built-in Species
  2. Agent Built-in
  3. Model Built-in
  4. Experiment Built-in
  5. Built-in Skills
  6. Built-in Architecture
  7. Statements
  8. Data Type
  9. File Type
  10. Expressions
  11. Literals
  12. Units and Constants
  13. Pseudo Variables
  14. Variables And Attributes
  15. Operators [A-A]
  16. Operators [B-C]
  17. Operators [D-H]
  18. Operators [I-M]
  19. Operators [N-R]
  20. Operators [S-Z]
  21. Index

Tutorials

  1. Predator Prey
  2. Road Traffic
  3. 3D Tutorial
  4. Incremental Model
  5. Luneray's flu
  6. Co-modeling
  7. BDI Agents

Pedagogical materials

Developing Extensions

  1. Installing the GIT version
  2. Architecture of GAMA
  3. Developing a Plugin
  4. Developing a Skill
  5. Developing a Statement
  6. Developing an Operator
  7. Developing a Type
  8. Developing a Species
  9. Developing a Control Architecture
  10. Index of annotations
  11. IScope
  12. Creating a release of GAMA
  13. Documentation generation
  14. Website generation

Scientific References

Projects using GAMA

Training Session

Events

Older versions

Coding Camp

Clone this wiki locally
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.