Fourth part of the Course "Java Open Source GIS Development - From the building blocks to extending an existing GIS application." held at the University of Potsdam in August 2011
Second part of the Course "Java Open Source GIS Development - From the building blocks to extending an existing GIS application." held at the University of Potsdam in August 2011
Trident International Graphics Workshop 2014 4/5Takao Wada
This document summarizes Day 4 of a 5-day graphics programming workshop using Cocos-2d-x. The agenda includes reviewing concepts, modifying classes to support 3D rendering, per pixel rendering, normal mapping, and parametric surfaces. It discusses updating classes to support 3D shader nodes and lighting, computing lighting per pixel in the fragment shader, culling and composing 2D and 3D scenes, and implementing normal mapping and generating geometries from parametric equations. Attendees are given exercises to render spheres with Blinn-Phong shading, change rendering settings, and create new parametric surfaces.
The document describes a geometry shader-based approach to bump mapping that has several advantages over traditional CPU-based approaches. The geometry shader constructs an object-to-texture space mapping for each triangle, allowing lighting computations to be done efficiently in texture space in the pixel shader. It addresses issues like texture mirroring and lighting discontinuities. Examples and Cg source code are provided to illustrate the technique.
The document discusses block modeling in Surpac software. It begins by defining block modeling and describing Surpac as mine planning software with various modules. It then outlines the objectives of block modeling in Surpac as familiarizing with its block modeling module, learning to fill a block model from drill hole data, apply constraints, and report volume, tonnage and grade. The document proceeds to explain the basic steps involved in block modeling and key concepts like model space, blocks and attributes, constraints, and estimation methods. It includes pictures demonstrating block models, borehole data display, and the Surpac interface. It concludes by providing an example workflow for creating a block model in Surpac.
Drobics, m. 2001: datamining using synergiesbetween self-organising maps and...ArchiLab 7
The document describes a three-stage approach to data mining that uses self-organizing maps, clustering, and fuzzy rule induction. In the first stage, a self-organizing map is used to reduce the data size while preserving topology. In the second stage, clustering identifies regions of interest. In the third stage, fuzzy rules are generated to describe the clusters. The approach was tested on image and real-world datasets and produced intuitive results.
Second part of the Course "Java Open Source GIS Development - From the building blocks to extending an existing GIS application." held at the University of Potsdam in August 2011
Trident International Graphics Workshop 2014 4/5Takao Wada
This document summarizes Day 4 of a 5-day graphics programming workshop using Cocos-2d-x. The agenda includes reviewing concepts, modifying classes to support 3D rendering, per pixel rendering, normal mapping, and parametric surfaces. It discusses updating classes to support 3D shader nodes and lighting, computing lighting per pixel in the fragment shader, culling and composing 2D and 3D scenes, and implementing normal mapping and generating geometries from parametric equations. Attendees are given exercises to render spheres with Blinn-Phong shading, change rendering settings, and create new parametric surfaces.
The document describes a geometry shader-based approach to bump mapping that has several advantages over traditional CPU-based approaches. The geometry shader constructs an object-to-texture space mapping for each triangle, allowing lighting computations to be done efficiently in texture space in the pixel shader. It addresses issues like texture mirroring and lighting discontinuities. Examples and Cg source code are provided to illustrate the technique.
The document discusses block modeling in Surpac software. It begins by defining block modeling and describing Surpac as mine planning software with various modules. It then outlines the objectives of block modeling in Surpac as familiarizing with its block modeling module, learning to fill a block model from drill hole data, apply constraints, and report volume, tonnage and grade. The document proceeds to explain the basic steps involved in block modeling and key concepts like model space, blocks and attributes, constraints, and estimation methods. It includes pictures demonstrating block models, borehole data display, and the Surpac interface. It concludes by providing an example workflow for creating a block model in Surpac.
Drobics, m. 2001: datamining using synergiesbetween self-organising maps and...ArchiLab 7
The document describes a three-stage approach to data mining that uses self-organizing maps, clustering, and fuzzy rule induction. In the first stage, a self-organizing map is used to reduce the data size while preserving topology. In the second stage, clustering identifies regions of interest. In the third stage, fuzzy rules are generated to describe the clusters. The approach was tested on image and real-world datasets and produced intuitive results.
High-quality rendering of 3D virtual environments typically depends on high-quality 3D models with significant geometric complexity and texture data. One major bottleneck for real-time image-synthesis represents the number of state changes, which a specific rendering API has to perform. To improve performance, batching can be used to group and sort geometric primitives into batches to reduce the number of required state changes, whereas the size of the batches determines the number of required draw-calls, and therefore, is critical for rendering performance. For example, in the case of texture atlases, which provide an approach for efficient texture management, the batch size is limited by the efficiency of the texture-packing algorithm and the texture resolution itself. This paper presents a pre-processing approach and rendering technique that overcomes these limitations by further grouping textures or texture atlases and thus enables the creation of larger geometry batches. It is based on texture arrays in combination with an additional indexing schema that is evaluated at run-time using shader programs. This type of texture management is especially suitable for real-time rendering of large-scale texture-rich 3D virtual environments, such as virtual city and landscape models.
STATE SPACE GENERATION FRAMEWORK BASED ON BINARY DECISION DIAGRAM FOR DISTRIB...csandit
This paper proposes a new framework based on Binary Decision Diagrams (BDD) for the graph distribution problem in the context of explicit model checking. The BDD are yet used to represent the state space for a symbolic verification model checking. Thus, we took advantage of high compression ratio of BDD to encode not only the state space, but also the place where each state will be put. So, a fitness function that allows a good balance load of states over the nodes of an homogeneous network is used. Furthermore, a detailed explanation of how to
calculate the inter-site edges between different nodes based on the adapted data structure is presented
The document discusses Bézier curves and provides information about a CS 354 class. It includes details about an in-class quiz, the professor's office hours, and an upcoming lecture on Bézier curves and Project 2, which is due on Friday. The lecture will cover procedural generation of a torus from a 2D grid, GLSL functions needed for the project, normal maps, coordinate spaces, interpolation curves, and Bézier curves.
CS 354 Transformation, Clipping, and CullingMark Kilgard
This document summarizes a lecture on graphics transformations, clipping, and culling. It discusses how vertex positions are transformed from object space to normalized device coordinates space using the modelview and projection matrices. It also covers generalized clipping against the view frustum and user-defined clip planes, as well as back face culling. The lecture provides examples of translation, rotation, scaling, orthographic, and perspective transformations.
DASH: A C++ PGAS Library for Distributed Data Structures and Parallel Algorit...Menlo Systems GmbH
DASH is a C++ PGAS library that provides distributed data structures and parallel algorithms. It offers a global address space without a custom compiler. DASH partitions data across multiple units through various distribution patterns. It supports distributed multidimensional arrays and efficient local and global access to data. DASH includes many parallel algorithms ported from STL and supports asynchronous communication. It aims to simplify programming distributed applications through its data-oriented approach.
Texture mapping is a process that maps a 2D texture image onto a 3D object's surface. This allows the 3D object to take on the visual characteristics of the 2D texture. The document discusses key aspects of texture mapping like how textures are represented as arrays of texels, how texture coordinates are assigned to map textures onto object surfaces, and techniques like mipmapping, filtering and wrapping that are used to render textures properly at different distances and orientations. OpenGL functions like glTexImage2D and glTexCoord are used to specify textures and texture coordinates for 3D rendering with texture mapping.
The document describes several graph layout programs including dot, neato, twopi, circo, fdp, and sfdp. These programs take graph files as input and output drawings of the graphs in various formats like PostScript, SVG, and bitmap images. The programs use different algorithms to determine the layout, such as hierarchies for dot, springs for neato and fdp, radial layouts for twopi, and circular layouts for circo. The document provides details on the command line syntax, input graph file format, and attributes that control the graph drawing output.
The document discusses various methods for 3D object modeling and representation, including:
- Polygonal meshes which approximate surfaces and solids using polygons and can represent a broad class of objects.
- Solid modeling using polygonal meshes where directional information is added to faces using normal vectors.
- Sweep representations that form shapes by extruding or sweeping 2D profiles through space.
- Surface modeling using explicit functions of two variables or surfaces of revolution obtained by rotating curves around axes.
The document discusses using the raster package in R to work with geographical grid data. It covers downloading and loading the raster package, creating raster objects and adding random values, reading in real climate data files, performing operations like cropping and aggregation, and sources for global climate data like WorldClim.
3D objects can be represented in several ways including point clouds, surfaces, and solids. Surfaces include meshes composed of polygons, subdivision surfaces defined by rules, and parametric or implicit surfaces with mathematical equations. Solids include voxel grids, binary space partition trees, constructive solid geometry using boolean operations, and swept volumes along trajectories. Each representation has advantages for different applications like rendering, modeling, or 3D scanning.
Rendering of Complex 3D Treemaps (GRAPP 2013)Matthias Trapp
This document presents an approach for interactively rendering complex 3D treemaps with over 600,000 items. It generates geometry for treemap items using a GPU-based approach, representing each item as an attributed point cloud. This enables efficient rendering while using less memory than CPU-based approaches. The method culls invisible geometry, applies thematic mappings, and uses post-processing for styling. It outperforms existing techniques in rendering speed and memory usage. Future work could improve readability, apply new visualization techniques, and generalize the approach.
Interactive Rendering and Stylization of Transportation Networks Using Distan...Matthias Trapp
Transportation networks, such as streets, railroads or metro systems, constitute primary elements in cartography for reckoning and navigation. In recent years, they have become an increasingly important part of 3D virtual environments for the interactive analysis and communication of complex hierarchical information, for example in routing, logistics optimization, and disaster management. A variety of rendering techniques have been proposed that deal with integrating transportation networks within these environments, but have so far neglected the many challenges of an interactive design process to adapt their spatial and thematic granularity (i.e., level-of-detail and level-of-abstraction) according to a user's context. This paper presents an efficient real-time rendering technique for the view-dependent rendering of geometrically complex transportation networks within 3D virtual environments. Our technique is based on distance fields using deferred texturing that shifts the design process to the shading stage for real-time stylization. We demonstrate and discuss our approach by means of street networks using cartographic design principles for context-aware stylization, including view-dependent scaling for clutter reduction, contour-lining to provide figure-ground, handling of street crossings via shading-based blending, and task-dependent colorization. Finally, we present potential usage scenarios and applications together with a performance evaluation of our implementation.
This document describes the R package gdistance, which calculates various distance measures and routes in geographic grids represented as rasters. It provides functions to calculate least-cost distances accounting for landscape heterogeneity, resistance distances modeling random walks, and random shortest paths. The package represents landscapes as transition matrices storing conductance values between raster cells. It calculates distances between points on these landscapes in a flexible way while correcting for projection and distance distortions.
05 Geographic scripting in uDig - halfway between user and developerAndrea Antonello
The document discusses using the JGrasstools library within Geoscript to perform geospatial analyses and processing on raster data. It provides examples of reading raster properties, creating new rasters, extracting features like pits and contours, and performing analyses like aspect modeling and network extraction. The library allows accessing the same raster processing modules available in uDig from within Geoscript scripts.
Stockage, manipulation et analyse de données matricielles avec PostGIS RasterACSG Section Montréal
La plus importantes nouveautés de la base de données spatiale open source PostgreSQL/PostGIS 2.0 est le support pour les données raster. PostGIS Raster comprend un outil d’importation similaire à shp2pgsql basé sur GDAL et une série d’opérateurs SQL pour la manipulation et l'analyse des données matricielles. Le nouveau type RASTER est géoréférencé, multi-résolutions et multi-bandes et il supporte une valeur nulle (nodata) et un type de valeur de pixel par bande. PostGIS raster s’inspire de la simplicité de l’expérience vecteur offerte par PostGIS pour rendre toutes les opérations raster aussi simples que possible. Comme pour une couverture vecteur, une couverture raster est divisée en un ensemble d’enregistrements (une ligne = une tuile) stockés dans une seule table (contrairement à Oracle Spatial qui utilise deux types et donc deux tables ou plus). Il est possible d’importer une couverture complète et de la retuiler en une seule commande avec l’outil d’importation et de multiples résolutions de la même couverture peuvent être importées dans des tables adjacentes. Les propriétés des objets raster et de chacune des bandes peuvent être consultées et modifiées ainsi que les valeurs des pixels. Des fonctions existent pour obtenir le minimum, le maximum, la somme, la moyenne, la déviation standard, l’histogramme d’une tuile ou d’une couverture complète. Les fonctions ST_Intersection() et ST_Intersects() fonctionnent pratiquement de manière transparente entre des données raster et vecteur et une série de fonctions pour l’algèbre matricielle (ST_MapAlgebra()) permet de faire de l’analyse de type raster. Il est possible de reclasser les bandes et de les convertir en n’importe quel format d’écriture GDAL. Des fonctions pour générer des rasters et des bandes existent également pour du développement PL/pgSQL. Un driver GDAL pour convertir les couvertures raster en fichiers images est en développement et des plugins pour QGIS et svSIG existent déjà pour les visualiser.
High-quality rendering of 3D virtual environments typically depends on high-quality 3D models with significant geometric complexity and texture data. One major bottleneck for real-time image-synthesis represents the number of state changes, which a specific rendering API has to perform. To improve performance, batching can be used to group and sort geometric primitives into batches to reduce the number of required state changes, whereas the size of the batches determines the number of required draw-calls, and therefore, is critical for rendering performance. For example, in the case of texture atlases, which provide an approach for efficient texture management, the batch size is limited by the efficiency of the texture-packing algorithm and the texture resolution itself. This paper presents a pre-processing approach and rendering technique that overcomes these limitations by further grouping textures or texture atlases and thus enables the creation of larger geometry batches. It is based on texture arrays in combination with an additional indexing schema that is evaluated at run-time using shader programs. This type of texture management is especially suitable for real-time rendering of large-scale texture-rich 3D virtual environments, such as virtual city and landscape models.
STATE SPACE GENERATION FRAMEWORK BASED ON BINARY DECISION DIAGRAM FOR DISTRIB...csandit
This paper proposes a new framework based on Binary Decision Diagrams (BDD) for the graph distribution problem in the context of explicit model checking. The BDD are yet used to represent the state space for a symbolic verification model checking. Thus, we took advantage of high compression ratio of BDD to encode not only the state space, but also the place where each state will be put. So, a fitness function that allows a good balance load of states over the nodes of an homogeneous network is used. Furthermore, a detailed explanation of how to
calculate the inter-site edges between different nodes based on the adapted data structure is presented
The document discusses Bézier curves and provides information about a CS 354 class. It includes details about an in-class quiz, the professor's office hours, and an upcoming lecture on Bézier curves and Project 2, which is due on Friday. The lecture will cover procedural generation of a torus from a 2D grid, GLSL functions needed for the project, normal maps, coordinate spaces, interpolation curves, and Bézier curves.
CS 354 Transformation, Clipping, and CullingMark Kilgard
This document summarizes a lecture on graphics transformations, clipping, and culling. It discusses how vertex positions are transformed from object space to normalized device coordinates space using the modelview and projection matrices. It also covers generalized clipping against the view frustum and user-defined clip planes, as well as back face culling. The lecture provides examples of translation, rotation, scaling, orthographic, and perspective transformations.
DASH: A C++ PGAS Library for Distributed Data Structures and Parallel Algorit...Menlo Systems GmbH
DASH is a C++ PGAS library that provides distributed data structures and parallel algorithms. It offers a global address space without a custom compiler. DASH partitions data across multiple units through various distribution patterns. It supports distributed multidimensional arrays and efficient local and global access to data. DASH includes many parallel algorithms ported from STL and supports asynchronous communication. It aims to simplify programming distributed applications through its data-oriented approach.
Texture mapping is a process that maps a 2D texture image onto a 3D object's surface. This allows the 3D object to take on the visual characteristics of the 2D texture. The document discusses key aspects of texture mapping like how textures are represented as arrays of texels, how texture coordinates are assigned to map textures onto object surfaces, and techniques like mipmapping, filtering and wrapping that are used to render textures properly at different distances and orientations. OpenGL functions like glTexImage2D and glTexCoord are used to specify textures and texture coordinates for 3D rendering with texture mapping.
The document describes several graph layout programs including dot, neato, twopi, circo, fdp, and sfdp. These programs take graph files as input and output drawings of the graphs in various formats like PostScript, SVG, and bitmap images. The programs use different algorithms to determine the layout, such as hierarchies for dot, springs for neato and fdp, radial layouts for twopi, and circular layouts for circo. The document provides details on the command line syntax, input graph file format, and attributes that control the graph drawing output.
The document discusses various methods for 3D object modeling and representation, including:
- Polygonal meshes which approximate surfaces and solids using polygons and can represent a broad class of objects.
- Solid modeling using polygonal meshes where directional information is added to faces using normal vectors.
- Sweep representations that form shapes by extruding or sweeping 2D profiles through space.
- Surface modeling using explicit functions of two variables or surfaces of revolution obtained by rotating curves around axes.
The document discusses using the raster package in R to work with geographical grid data. It covers downloading and loading the raster package, creating raster objects and adding random values, reading in real climate data files, performing operations like cropping and aggregation, and sources for global climate data like WorldClim.
3D objects can be represented in several ways including point clouds, surfaces, and solids. Surfaces include meshes composed of polygons, subdivision surfaces defined by rules, and parametric or implicit surfaces with mathematical equations. Solids include voxel grids, binary space partition trees, constructive solid geometry using boolean operations, and swept volumes along trajectories. Each representation has advantages for different applications like rendering, modeling, or 3D scanning.
Rendering of Complex 3D Treemaps (GRAPP 2013)Matthias Trapp
This document presents an approach for interactively rendering complex 3D treemaps with over 600,000 items. It generates geometry for treemap items using a GPU-based approach, representing each item as an attributed point cloud. This enables efficient rendering while using less memory than CPU-based approaches. The method culls invisible geometry, applies thematic mappings, and uses post-processing for styling. It outperforms existing techniques in rendering speed and memory usage. Future work could improve readability, apply new visualization techniques, and generalize the approach.
Interactive Rendering and Stylization of Transportation Networks Using Distan...Matthias Trapp
Transportation networks, such as streets, railroads or metro systems, constitute primary elements in cartography for reckoning and navigation. In recent years, they have become an increasingly important part of 3D virtual environments for the interactive analysis and communication of complex hierarchical information, for example in routing, logistics optimization, and disaster management. A variety of rendering techniques have been proposed that deal with integrating transportation networks within these environments, but have so far neglected the many challenges of an interactive design process to adapt their spatial and thematic granularity (i.e., level-of-detail and level-of-abstraction) according to a user's context. This paper presents an efficient real-time rendering technique for the view-dependent rendering of geometrically complex transportation networks within 3D virtual environments. Our technique is based on distance fields using deferred texturing that shifts the design process to the shading stage for real-time stylization. We demonstrate and discuss our approach by means of street networks using cartographic design principles for context-aware stylization, including view-dependent scaling for clutter reduction, contour-lining to provide figure-ground, handling of street crossings via shading-based blending, and task-dependent colorization. Finally, we present potential usage scenarios and applications together with a performance evaluation of our implementation.
This document describes the R package gdistance, which calculates various distance measures and routes in geographic grids represented as rasters. It provides functions to calculate least-cost distances accounting for landscape heterogeneity, resistance distances modeling random walks, and random shortest paths. The package represents landscapes as transition matrices storing conductance values between raster cells. It calculates distances between points on these landscapes in a flexible way while correcting for projection and distance distortions.
05 Geographic scripting in uDig - halfway between user and developerAndrea Antonello
The document discusses using the JGrasstools library within Geoscript to perform geospatial analyses and processing on raster data. It provides examples of reading raster properties, creating new rasters, extracting features like pits and contours, and performing analyses like aspect modeling and network extraction. The library allows accessing the same raster processing modules available in uDig from within Geoscript scripts.
Stockage, manipulation et analyse de données matricielles avec PostGIS RasterACSG Section Montréal
La plus importantes nouveautés de la base de données spatiale open source PostgreSQL/PostGIS 2.0 est le support pour les données raster. PostGIS Raster comprend un outil d’importation similaire à shp2pgsql basé sur GDAL et une série d’opérateurs SQL pour la manipulation et l'analyse des données matricielles. Le nouveau type RASTER est géoréférencé, multi-résolutions et multi-bandes et il supporte une valeur nulle (nodata) et un type de valeur de pixel par bande. PostGIS raster s’inspire de la simplicité de l’expérience vecteur offerte par PostGIS pour rendre toutes les opérations raster aussi simples que possible. Comme pour une couverture vecteur, une couverture raster est divisée en un ensemble d’enregistrements (une ligne = une tuile) stockés dans une seule table (contrairement à Oracle Spatial qui utilise deux types et donc deux tables ou plus). Il est possible d’importer une couverture complète et de la retuiler en une seule commande avec l’outil d’importation et de multiples résolutions de la même couverture peuvent être importées dans des tables adjacentes. Les propriétés des objets raster et de chacune des bandes peuvent être consultées et modifiées ainsi que les valeurs des pixels. Des fonctions existent pour obtenir le minimum, le maximum, la somme, la moyenne, la déviation standard, l’histogramme d’une tuile ou d’une couverture complète. Les fonctions ST_Intersection() et ST_Intersects() fonctionnent pratiquement de manière transparente entre des données raster et vecteur et une série de fonctions pour l’algèbre matricielle (ST_MapAlgebra()) permet de faire de l’analyse de type raster. Il est possible de reclasser les bandes et de les convertir en n’importe quel format d’écriture GDAL. Des fonctions pour générer des rasters et des bandes existent également pour du développement PL/pgSQL. Un driver GDAL pour convertir les couvertures raster en fichiers images est en développement et des plugins pour QGIS et svSIG existent déjà pour les visualiser.
This document discusses techniques for creating scrolling maps in 2D games. It describes how to create horizontal and vertical scrolling by loading multiple background images and moving them across the screen. It also covers creating square and rhombus shaped maps by defining a viewport and converting between cell and point coordinates. Methods are provided for loading map textures, drawing the viewport region, and abstractly converting between coordinate systems for different map shapes.
Tall-and-skinny Matrix Computations in MapReduce (ICME colloquium)Austin Benson
The passage discusses the importance of teaching children about money at a young age through activities like allowing them to make purchases and helping with household financial tasks. Starting financial education early can help children understand money management and make responsible decisions as adults. Children who learn about earning, spending, and saving money tend to continue practicing healthy financial habits into their teenage and adult years.
2017 RM-URISA Track: Spatial SQL - The Best Kept Secret in the Geospatial WorldGIS in the Rockies
This document provides an overview of spatial SQL and PostGIS. It begins with an introduction to spatial SQL and the benefits it provides. It then discusses PostGIS in more detail, explaining what it is, how to import spatial data into PostGIS, and examples of common spatial functions in PostGIS like ST_Intersects and ST_Distance. It also provides resources for learning more about spatial SQL and PostGIS.
The document discusses various concepts related to remote sensing and geographic information systems (GIS). It defines key terms like digital and analog images, spatial and spectral resolution, data models, and data types used in GIS. It also describes common data formats, software, techniques for data input and management, and methods for spatial analysis and map making using GIS.
Beginning direct3d gameprogramming06_firststepstoanimation_20161115_jintaeksJinTaek Seo
This document provides an overview of transformations in the 3D graphics pipeline, including world, view, projection, and clipping transforms. It explains how to set up common transformation matrices like world, view, and projection matrices in Direct3D. Key matrix classes covered include D3DXMatrixTranslation, D3DXMatrixRotationY, and D3DXMatrixPerspectiveFovLH. The document also discusses quaternions, tutorials for using matrices, and techniques like depth buffering.
This document discusses different clustering techniques applied to geo-location booking data to identify patterns.
It loads booking data containing latitude, longitude, and time. It performs k-means clustering with 8 clusters, identifying optimal clusters using within sum of squares. DBSCAN clustering identifies 7 cohesive clusters without outliers.
Model-based clustering using Mclust is also applied. It identifies 9 non-spherical clusters and does not require pre-specifying the number of clusters. Hourly density plots show bookings are more dispersed during daytime compared to night. Overall, model-based clustering provides the most meaningful insights into clusters within the geo-location data.
Transformations and actions a visual guide trainingSpark Summit
The document summarizes key Spark API operations including transformations like map, filter, flatMap, groupBy, and actions like collect, count, and reduce. It provides visual diagrams and examples to illustrate how each operation works, the inputs and outputs, and whether the operation is narrow or wide.
This document describes a project to compute the volume of a section of the Atlantic Ocean off the coast of Florida using data obtained from a GeoMapApp. It includes mathematical derivations of interpolation formulas and integration methods to discretize the ocean area into rectangles and compute the volume. Computational details are provided on obtaining depth data from the app and implementing the volume calculation in MATLAB. A verification method using a rectangular prism approximation is also described and matches the computed volume result. Contributions of the four authors to various aspects of the project are outlined.
Data Processing Using THEOS Satellite Imagery for Disaster Monitoring (Case S...NopphawanTamkuan
This content shows the specification of THEOS/Thaichote (Thai satellite), information of flood in Vietnam, comparison of pre-disaster image (Landsat-8) and post-disaster image (THEOS) by different methods such as color composite, thresholding, and segmentation for flooded areas classification.
This document discusses how geographic features are represented in GIS data structures. Spatial data represents the location of features, while attribute data describes characteristics. Features can be represented using vector or raster data models. Vector models store location data as x,y coordinates and connect them to form lines and polygons. Raster models divide space into a grid of cells and store a single value for each cell. Relational databases are commonly used to organize spatial and attribute data for GIS analysis and mapping.
The document describes various computer graphics output primitives and algorithms for drawing them, including lines, circles, and filled areas. It discusses line drawing algorithms like DDA, Bresenham's, and midpoint circle algorithms. These algorithms use incremental integer calculations to efficiently rasterize primitives by determining the next pixel coordinates without performing floating point calculations at each step. The midpoint circle algorithm in particular uses a "circle function" and incremental updates to its value to determine whether the next pixel is inside or outside the circle boundary.
This document summarizes the use of spatial data analysis in R using the sp package. It discusses how to create and manipulate spatial point, line, polygon and grid objects. It provides an example of analyzing Colorado tornado data and counting storms in hexagonal grids over the United States to demonstrate spatial analysis techniques in R.
The document describes Threp, a lightweight remapping framework for use in Earth system models. Threp aims to provide a flexible, readable, and efficient framework for remapping data between different grid types, including regular, rectilinear, curvilinear, and unstructured grids. It supports operations like interpolation, masking, and extrapolation between source and destination grids. Threp uses a two-stage process of first generating interpolation weights and then applying those weights to remap data values. It is designed for parallel computation and to be easily extensible to support new interpolation methods and grid types.
Raster data is commonly obtained by scanning maps or collecting aerial photographs and satellite images. Scanned map datasets don't normally contain spatial reference information (either embedded in the file or as a separate file). With aerial photography and satellite imagery, sometimes the location information delivered with them is inadequate, and the data does not align properly with other data one has. Thus, to use some raster datasets in conjunction with other spatial data, we need to align or georeference them to a map coordinate system. A map coordinate system is defined using a map projection (a method by which the curved surface of the earth is portrayed on a flat surface). Georeferencing a raster data defines its location using map coordinates and assigns the coordinate system of the data frame. Georeferencing raster data allows it to be viewed, queried, and analyzed with other geographic data.
Generally, we georeference raster data using existing spatial data (target data)—such as georeferenced rasters or a vector feature class—that resides in the desired map coordinate system. The process involves identifying a series of ground control points—known x,y coordinates—that link locations on the raster dataset with locations in the spatially referenced data (target data). Control points are locations that can be accurately identified on the raster dataset and in real-world coordinates. Many different types of features can be used as identifiable locations, such as road or stream intersections, the mouth of a stream, rock outcrops, the end of a jetty of land, the corner of an established field, street corners, or the intersection of two hedgerows. The control points are used to build a polynomial transformation that will shift the raster dataset from its existing location to the spatially correct location. The connection between one control point on the raster dataset (the from point) and the corresponding control point on the aligned target data (the to point) is a link.
Finally, the georeferenced raster file can be exported for further usage.
THIS PRESENTATION IS TO HELP YOU PERFORM THE TASK STEP BY STEP.
The Day You Finally Use Algebra: A 3D Math PrimerJanie Clayton
This document provides an overview of various math and programming concepts used for graphics. It begins with an introduction to linear algebra and how it allows performing actions on multiple values simultaneously through matrices. It then discusses trigonometry and how triangles are used as a foundation for 3D graphics. Finally, it shares code for a fragment shader that simulates refraction through a sphere to demonstrate these concepts in action.
Feature Extraction Based Estimation of Rain Fall By Cross Correlating Cloud R...IOSR Journals
In this paper we present the feature extraction based estimation of rain fall by cross correlating
cloud RADAR Data. The idea is to select a square box of around 200x200 pixels around the point of interest and
take the cross correlation between the last picture and one that is 5 or 10 minutes older. We then determine the
wind direction and speed by finding the highest point in the correlation. Last step is to interpolate the data
acquired in a tagged format to the latest data in the up-wind direction to get a prediction for the near future.
The basic principle works, but it is hard to get a good estimate of the wind direction.
Feature Extraction Based Estimation of Rain Fall By Cross Correlating Cloud R...IOSR Journals
Abstract: In this paper we present the feature extraction based estimation of rain fall by cross correlating
cloud RADAR Data. The idea is to select a square box of around 200x200 pixels around the point of interest and
take the cross correlation between the last picture and one that is 5 or 10 minutes older. We then determine the
wind direction and speed by finding the highest point in the correlation. Last step is to interpolate the data
acquired in a tagged format to the latest data in the up-wind direction to get a prediction for the near future.
The basic principle works, but it is hard to get a good estimate of the wind direction.
Keywords – Feature Extraction, Cross correlation, Rain Fall, RADAR, Image Processing.
Similar to Opensource gis development - part 4 (20)
GEOPAPARAZZI: STATE OF THE ART OF THE DIGITAL FIELD MAPPING APPLICATIONAndrea Antonello
This document summarizes a presentation about Geopaparazzi and SMASH, two open source field mapping applications. Geopaparazzi has been migrated to use the Vector Tile Map library for improved performance. A new app called SMASH has also been developed, which runs on both Android and iOS. SMASH has a simplified interface and includes some additional features like project sharing. Both apps allow collecting geotagged notes, photos and GPS logs. The presentation demonstrates new capabilities in the updated apps and calls for users to test the latest versions.
The Geopaparazzi Survey Server (GSS) allows users to synchronize Geopaparazzi projects with a central server. The GSSSync app connects Geopaparazzi projects to the GSS to upload and download data using a unique device ID. The GSS provides views for users, surveyors, maps, settings, exports, and a form builder to create customized forms for data collection. Surveys are conducted using Geopaparazzi and forms from the GSS, and survey data is synchronized to the GSS using GSSSync.
This document provides instructions for installing a Geopaparazzi Survey Server (GSS) which allows for centralizing survey data. It describes downloading necessary software, installing the GSS docker image on Linux, and manually installing the GSS WAR file and configuring Tomcat on Windows or Linux. The instructions cover extracting and configuring Tomcat, setting environment variables, copying the WAR file, and starting the server.
Modelling natural hazards in gvSIG with the HortonMachine pluginsAndrea Antonello
The document summarizes the HortonMachine library, which is an open source geospatial library for hydro-geomorphological analysis and environmental modeling. It discusses the library's development history and capabilities. The library contains models for tasks like geomorphology analysis, raster/vector processing, mobile tools, and more. It also includes tools for visualizing and working with raster data in gvSIG like the raster styler, raster graphic view, and raster values copy. An example is given of how the library's tools could have been used to model a landslide event that occurred in Dimaro, Italy in 2018.
1) The document describes Geopaparazzi, an open-source field survey tool, and how it can be used with the Geopaparazzi Survey Server (GSS) for data synchronization across teams.
2) The GSS allows Geopaparazzi users to upload their project data to a central server and download shared basemaps, overlays, and projects.
3) The document provides instructions for installing the GSS docker image and loading sample data into Geopaparazzi using the GSS Sync Android app to retrieve profiles from the server.
The document provides an overview of Geopaparazzi, an open source mobile mapping application, and the Geopaparazzi Survey Server (GSS). Geopaparazzi allows users to collect georeferenced notes, photos, and GPS tracks in the field. The GSS allows centralized storage and sharing of Geopaparazzi project data. The summary describes how to install and use both Geopaparazzi on Android devices and the GSS using Docker, including collecting and syncing field data, creating user accounts and surveyors, downloading basemaps and overlays, and building custom forms.
The HortonMachine, for data analysis to help scientists... and not onlyAndrea Antonello
The document summarizes the HortonMachine, an open source geospatial hydrological modeling toolkit. It provides over 30 hydrological, geomorphological, and terrain analysis modules that can be run within the gvSIG desktop GIS application. The HortonMachine includes tools for drainage analysis, interpolation, peak flow estimation, hydraulic modeling, slope stability analysis, and more. It also has utilities for raster and vector data processing, profile extraction from LiDAR, and integration with the field data collection app Geopaparazzi. The goal of the HortonMachine is to provide scientists open source tools for hydrological modeling and analysis within a desktop GIS environment.
This document discusses Geopaparazzi and gvSIG Mobile applications. It begins by introducing Geopaparazzi as a tool for engineering surveys and field data collection that has been in use for 10 years. It then describes key functions of Geopaparazzi including notes, GPS logging, supported basemaps, and Spatialite database support. The document also discusses plugins that allow Geopaparazzi data to be used within gvSIG and provides examples of how both applications have been used for disaster management, natural resource mapping, and land use surveys.
This document discusses geographic scripting in gvSIG using the Python programming language. It provides examples of building geometries like points, lines, polygons and multi-geometries programmatically using the gvsig module. It also demonstrates using predicates to check relationships between geometries like intersection and containment. Functions for performing geometric operations on layers like intersection, union, difference and buffer are also illustrated.
Geopaparazzi is a tool for digital field mapping on Android devices. It allows taking georeferenced notes, photos, and tracking GPS during surveys. The document discusses preparing background map and feature data for use in Geopaparazzi, including creating MBTiles and Spatialite databases. It also covers using the app to conduct a survey, exporting data for analysis in GIS, and developing simple custom survey forms for structured note taking.
The document provides a history of mobile phones and smartphones from 1973 to present day. It discusses key milestones like the first mobile call in 1973, the introduction of SMS messaging, and the rise of smartphones. It then summarizes the development of open source mapping applications like Geopaparazzi for Android, including its features for notes, photos, GPS logs and spatial data. Examples of projects using Geopaparazzi are also mentioned.
1. Geoscript allows the addition of spatial capabilities to scripting languages like Groovy and Python through the Geotools library, making GIS development simpler through batching and fast prototyping.
2. uDig is an open source desktop GIS application that supports geoscripting and spatial processing through tools like JGrasstools, and provides a scripting editor to write and run geoscripts.
3. Geoscripts in uDig can access vector and raster data, perform spatial operations, and use tools like JGrasstools for hydrological modeling tasks through a simple template-based process.
How to Manage Your Lost Opportunities in Odoo 17 CRMCeline George
Odoo 17 CRM allows us to track why we lose sales opportunities with "Lost Reasons." This helps analyze our sales process and identify areas for improvement. Here's how to configure lost reasons in Odoo 17 CRM
हिंदी वर्णमाला पीपीटी, hindi alphabet PPT presentation, hindi varnamala PPT, Hindi Varnamala pdf, हिंदी स्वर, हिंदी व्यंजन, sikhiye hindi varnmala, dr. mulla adam ali, hindi language and literature, hindi alphabet with drawing, hindi alphabet pdf, hindi varnamala for childrens, hindi language, hindi varnamala practice for kids, https://www.drmullaadamali.com
বাংলাদেশের অর্থনৈতিক সমীক্ষা ২০২৪ [Bangladesh Economic Review 2024 Bangla.pdf] কম্পিউটার , ট্যাব ও স্মার্ট ফোন ভার্সন সহ সম্পূর্ণ বাংলা ই-বুক বা pdf বই " সুচিপত্র ...বুকমার্ক মেনু 🔖 ও হাইপার লিংক মেনু 📝👆 যুক্ত ..
আমাদের সবার জন্য খুব খুব গুরুত্বপূর্ণ একটি বই ..বিসিএস, ব্যাংক, ইউনিভার্সিটি ভর্তি ও যে কোন প্রতিযোগিতা মূলক পরীক্ষার জন্য এর খুব ইম্পরট্যান্ট একটি বিষয় ...তাছাড়া বাংলাদেশের সাম্প্রতিক যে কোন ডাটা বা তথ্য এই বইতে পাবেন ...
তাই একজন নাগরিক হিসাবে এই তথ্য গুলো আপনার জানা প্রয়োজন ...।
বিসিএস ও ব্যাংক এর লিখিত পরীক্ষা ...+এছাড়া মাধ্যমিক ও উচ্চমাধ্যমিকের স্টুডেন্টদের জন্য অনেক কাজে আসবে ...
How to Setup Warehouse & Location in Odoo 17 InventoryCeline George
In this slide, we'll explore how to set up warehouses and locations in Odoo 17 Inventory. This will help us manage our stock effectively, track inventory levels, and streamline warehouse operations.
A review of the growth of the Israel Genealogy Research Association Database Collection for the last 12 months. Our collection is now passed the 3 million mark and still growing. See which archives have contributed the most. See the different types of records we have, and which years have had records added. You can also see what we have for the future.
Beyond Degrees - Empowering the Workforce in the Context of Skills-First.pptxEduSkills OECD
Iván Bornacelly, Policy Analyst at the OECD Centre for Skills, OECD, presents at the webinar 'Tackling job market gaps with a skills-first approach' on 12 June 2024
1. Java Open Source GIS
Development
From the building blocks to extending
an existing GIS application.
Geoinformation Research Group, Department of Geography
University of Potsdam
August 2011
Part 4: Raster data
Tutor: Andrea Antonello
ydroloGIS nvironmental ngineering
HydroloGIS S.r.l. - Via Siemens, 19 - 39100 Bolzano www.hydrologis.com
2. Working with Raster data
When we talk about raster data in GIS we usually mean digital
elevation/terrain/surface models (DEM/DTM/DSM). DEMs can be used to
extract various attributes useful for hydrologic, geomorphologic analyses.
From the DEM maps like aspect, flowdirections, curvatures, gradient and
extracted network can be calculated.
As seen in part 1, a raster is composed of cells and has a value in every cell.
A DEM is a raster that has in every cell the elevation value in that position.
Handling raster data is on one hand trickier than vector data in GeoTools, the
upside is that raster data are so simple, that there is few we need to learn to
be able to process them.
3. Reading a raster map
The perhaps simplest format for raster data is the ascii grid. An ascii grid is a
cleartext format that contains:
• a header with:
• the information of the position of the raster (lower left corner)
• the size of the cells
• the number used as novalue
• the matrix of the data
The dataset we will use for our tests is the spearfish dataset. Please
download it and unzip it in /home/moovida/giscourse/data.
4. While creating a raster from scratch is not all that easy in GeoTools, reading
it from a map file, is quite easy. All the hard work is done by the coverage
readers, as in the following case by the ArcGridReader:
ArcGridReader asciiGridReader = new ArcGridReader(file);
GridCoverage2D readRaster = asciiGridReader.read(null);
// make sure to get the actual data
readRaster = readRaster.view(ViewType.GEOPHYSICS);
asciiGridReader.dispose();
The same concept applies to the writing of raster maps. Once we have the
GridCoverage2D that we want to write to file, we just need the appropriate
writer class:
ArcGridWriter asciiGridWriter = new ArcGridWriter(file);
asciiGridWriter.write(readRaster, null);
asciiGridWriter.dispose();
This obviously makes it easy to create a tool to transform between formats.
5. To view the newly written geotiff raster map, we first need to read it again:
GeoTiffReader geoTiffReader = new GeoTiffReader(file);
readRaster = geoTiffReader.read(null);
// readRaster = readRaster.view(ViewType.GEOPHYSICS);
geoTiffReader.dispose();
and pass it with a default style to the map viewer:
MapContext map = new MapContext();
map.setTitle("Grid");
map.setCoordinateReferenceSystem(readRaster.getCoordinateReferenceSystem());
StyleFactory sf = CommonFactoryFinder.getStyleFactory(GeoTools.getDefaultHints());
Style style = SLD.wrapSymbolizers(sf.createRasterSymbolizer());
map.addLayer(readRaster, style);
JMapFrame.showMap(map);
You should see something like:
6. Processing a raster map
Processing a raster map basically means doing something with the values
contained in every cell of the map.
To do so we need to be able to iterate over the cells. But first we need to
have the concept of image space and world space clear. Assuming we are
placed north of the equator, the following holds:
cols
grid space
0,0 1
rows
2 value
easting
northing
y
x
world space
7. In the grid space
Accessing the raster in the grid/image space is usually easier understood.
Most of the times the origin of a raster map is in row = 0 and col = 0 and has
a well defined width and height. Attributes like these can be easily obtained
from the GridCoverage2D through the JGrasstools API:
RegionMap regionMap = CoverageUtilities.getRegionParamsFromGridCoverage(readRaster);
int rows = regionMap.getRows();
int cols = regionMap.getCols();
Everything boils down to an iteration over cols and rows to access every cell
through the evaluate method. As an example let's calculate the sum of all
the values and the average elevation of the test DEM:
double sum = 0;
double[] values = new double[1];
for( int c = 0; c < cols; c++ ) {
for( int r = 0; r < rows; r++ ) {
readRaster.evaluate(new GridCoordinates2D(c, r), values);
sum = sum + values[0];
}
}
double avg = sum / (rows * cols);
8. In the world space
When working in the world space, the only thing that changes, is that when
iterating over the position, the bounds and resolution of the raster has to be
considered. They can be obtained from the RegionMap object already used
for the rows and cols:
double west = regionMap.getWest();
double east = regionMap.getEast();
double south = regionMap.getSouth();
double north = regionMap.getNorth();
double xres = regionMap.getXres();
double yres = regionMap.getYres();
Then, we can move cell by cell through the world coordinates:
sum = 0;
values = new double[1];
for( double easting = west + xres / 2.0; easting < east; easting = easting + xres ) {
for( double northing = south + yres / 2.0; northing < north; northing = northing + yres ) {
readRaster.evaluate(new Point2D.Double(easting, northing), values);
sum = sum + values[0];
}
}
avg = sum / (rows * cols);
9. Writing a raster map
In the previous examples we calculated some simple statistics. Most of the
time the result of a GIS elaboration will be a new raster map that we also
need to write to a file.
As an exercise, let's bring the spearfish mountains to the sea. This basically
means to:
1. search the minimum value of the map
2. create a new raster into which to put the result
3. subtract the minimum to every value and write the result into the new
raster
4. write the raster to disk
10. Find minimum:
double min = Double.POSITIVE_INFINITY;
for( int c = 0; c < cols; c++ ) {
for( int r = 0; r < rows; r++ ) {
readRaster.evaluate(new GridCoordinates2D(c, r), values);
min = Math.min(values[0], min);
}
}
Create an empty new raster to put the result in:
WritableRaster newWritableRaster = CoverageUtilities.createDoubleWritableRaster(//
cols, rows, null, null, null);
Note that the raster has been defined only by rows and cols, it lives in the
image space and has no idea were on the world it will be placed.
Make mountains crumble to the sea:
for( int c = 0; c < cols; c++ ) {
for( int r = 0; r < rows; r++ ) {
readRaster.evaluate(new GridCoordinates2D(c, r), values);
newWritableRaster.setSample(c, r, 0, values[0] - min);
}
}
11. Give the resulting raster a geographic context:
CoordinateReferenceSystem crs = readRaster.getCoordinateReferenceSystem();
GridCoverage2D newRaster = CoverageUtilities.buildCoverage(//
"raster", newWritableRaster, regionMap, crs);
Check the result by loading the read and processed raster in a viewer and
quering the elevation.
12. From rows/cols to easting/northing and back
The transformation between the two domanis can be done directly from the
GridGeometry.
GridGeometry2D gridGeometry = readRaster.getGridGeometry();
Image -> World
int row = 100;
int col = 50;
DirectPosition world = gridGeometry.gridToWorld(new GridCoordinates2D(col, row));
double[] worldArray = world.getCoordinate();
Coordinate worldCoord = new Coordinate(worldArray[0], worldArray[1]);
World -> Image
double easting = 591825.0;
double northing = 4924635.0;
GridCoordinates2D grid = gridGeometry.worldToGrid(new DirectPosition2D(easting, northing));
col = grid.x;
row = grid.y;
13. Exercises
• reclassify the spearfish elevation map to have
• nv: min - 1200.0
• 1: 1200.0 - 1500.0
• 2: 1500.0 - 1800.0
• 3: 1800.0 - max
• create a map that contains only the values between 1200.0 and 1400.0
Advanced exercises with mixed raster/vector flavour:
• create the profile of the raster, based on a horizontal LineString that
passes through the middle of the map
• create a raster map that has the spearfish elevation values only inside a
rectangle that is given by the original raster bounding box shrinked by a
quarter on each side
14. This work is released under Creative Commons Attribution Share
Alike (CC-BY-SA)
Much of the knowledge needed to create this training material has
been produced by the sparkling knights of the GeoTools, JTS and
uDig community. Another essential source has been the Wikipedia
community effort.
Particular thanks go to those friends that directly or indirectly helped
out in the creation and review of this developer's handbook: Jody
Garnett from the uDig/GeoTools community and the TANTO team.
This tutorial was written with the support of the Geoinformation
Research Group of the University of Potsdam and HydroloGIS.