Version 1.2, Jan. 2013Grid generation 1/32WW Winter School 2013 Automated Grid Generation for WAVEWATCH III Arun Chawla The WAVEWATCH III Team + friends.

Slides:



Advertisements
Similar presentations
Summer Computing Workshop. Introduction to Variables Variables are used in every aspect of programming. They are used to store data the programmer needs.
Advertisements

Guy EvenZvi LotkerDana Ron Tel Aviv University Conflict-free colorings of unit disks, squares, & hexagons.
System Development Life Cycle (SDLC)
 Copyright I/O International, 2013 Visit us at: A Feature Within from Sales Rep User Friendly Maintenance – with Zip Code.
Annoucements  Next labs 9 and 10 are paired for everyone. So don’t miss the lab.  There is a review session for the quiz on Monday, November 4, at 8:00.
10 Software Engineering Foundations of Computer Science ã Cengage Learning.
Version 1.1, Jan. 2013Obstructions 1/26WW Winter School 2013 Developing Obstruction grids Arun Chawla The WAVEWATCH III Team + friends Marine Modeling.
Chapter 7: User-Defined Functions II Instructor: Mohammad Mojaddam.
Fluidyn FLOWCOAST FLOOIL 3D Fluid Dynamics Model to Simulate Oil slick movement in coastal waters or rivers FLOOIL.
1 CSE1301 Computer Programming: Lecture 23 Algorithm Design (Part 1)
Chapter 18. IP: Internet Protocol Addresses
CONTOUR LINES.
Version 1.2, Feb. 2013Quasi-stationary WW3 1/15WW Winter School 2013 Quasi-stationary WAVEWATCH III André van der Westhuysen The WAVEWATCH III Team + friends.
Basic Input/Output Operations
Software Design Project
Efficient Parallelization for AMR MHD Multiphysics Calculations Implementation in AstroBEAR.
©2005 Austin Troy Lecture 9: Introduction to GIS 1.Vector Geoprocessing Lecture by Austin Troy, University of Vermont.
1 NGGPS Dynamic Core Requirements Workshop NCEP Future Global Model Requirements and Discussion Mark Iredell, Global Modeling and EMC August 4, 2014.
Review of the NCEP production Suite: Recent Changes and Plans
@ 2007 Austin Troy. Geoprocessing Introduction to GIS Geoprocessing is the processing of geographic information. Perform spatial analysis and modeling.
Version 1.3, Feb. 2013Parallel implementation 1/28WW Winter School 2013 Parallel implementation Hendrik Tolman The WAVEWATCH III Team + friends Marine.
Creation of Gridded MOS Land Water Mask Statistical Modeling Branch Meteorological Development Lab November 9, 2007.
Advanced Lesson 1: Advanced Data Organization In Excel 2007, you can use a table to manage and organize related data. You can use the Autofilter tools.
Version 1.3, Feb. 2013Time stepping 1/20WW Winter School 2013 Time stepping Hendrik Tolman The WAVEWATCH III Team + friends Marine Modeling and Analysis.
Preparing Data for Analysis and Analyzing Spatial Data/ Geoprocessing Class 11 GISG 110.
RDFS Rapid Deployment Forecast System Visit at: Registration required.
Distance. Euclidean Distance Minimum distance from a source (Value NoData) Input grid must have at least one source cell with the rest of the grid.
Version 1.2, Feb. 2013Modular structure 1/22WW Winter School 2013 Modular structure of WAVEWATCH III and general features Arun Chawla The WAVEWATCH III.
Version 1.4, Jan. 2013Triangles 1/27WW Winter School 2013 Running WWATCH on triangular meshes Fabrice Ardhuin The friends of WAVEWATCH III Team Marine.
MCTS Guide to Microsoft Windows Vista Chapter 4 Managing Disks.
Software Engineering Saeed Akhtar The University of Lahore Lecture 8 Originally shared for: mashhoood.webs.com.
Abstract The Center for Remote Sensing of Ice Sheets (CReSIS) has collected hundreds of terabytes of radar depth sounder data over the Greenland and Antarctic.
© Janice Regan, CMPT 300, May CMPT 300 Introduction to Operating Systems Memory: Relocation.
U.S. Department of the Interior U.S. Geological Survey Processing ArcHydro Datasets with NHDPlus Version 2, Emphasizing StreamStats Data Development Webinar.
Issues concerning the interpretation of statistical significance tests.
Synthesizing Natural Textures Michael Ashikhmin University of Utah.
ATmospheric, Meteorological, and Environmental Technologies RAMS Parallel Processing Techniques.
McGraw-Hill©The McGraw-Hill Companies, Inc., 2004 Connecting Devices CORPORATE INSTITUTE OF SCIENCE & TECHNOLOGY, BHOPAL Department of Electronics and.
Creating Digital Elevation Models. What is a DEM? Raster files with specific elevation values at specific grid point locations.
Engineering H192 - Computer Programming Gateway Engineering Education Coalition Lect 29P. 1Winter Quarter Software Design Project Lecture 29.
CPSC 252 Hashing Page 1 Hashing We have already seen that we can search for a key item in an array using either linear or binary search. It would be better.
Sensor testing and validation plans for Phase-1 and Ultimate IPHC_HFT 06/15/ LG1.
Session 1 Module 1: Introduction to Data Integrity
CSE554Contouring IISlide 1 CSE 554 Lecture 5: Contouring (faster) Fall 2015.
CSE554Contouring IISlide 1 CSE 554 Lecture 3: Contouring II Fall 2011.
CSE554Contouring IISlide 1 CSE 554 Lecture 5: Contouring (faster) Fall 2013.
Race conditions and synchronization issues Exploiting UNIX.
3/12/2013Computer Engg, IIT(BHU)1 OpenMP-1. OpenMP is a portable, multiprocessing API for shared memory computers OpenMP is not a “language” Instead,
Climate-SDM (1) Climate analysis use case –Described by: Marcia Branstetter Use case description –Data obtained from ESG –Using a sequence steps in analysis,
Chapter 7 - Functions. Functions u Code group that performs single task u Specification refers to what goes into and out of function u Design refers to.
1 Computational Vision CSCI 363, Fall 2012 Lecture 18 Stereopsis III.
COMP7330/7336 Advanced Parallel and Distributed Computing Task Partitioning Dr. Xiao Qin Auburn University
Embedded Real-Time Systems Processing interrupts Lecturer Department University.
Testing of Objective Analysis of Precipitation Structures (Snowbands) using the NCAR Developmental Testbed Center (DTC) Model Evaluation Tools (MET) Software.
CSE 554 Lecture 5: Contouring (faster)
Graphcut Textures:Image and Video Synthesis Using Graph Cuts
Data Mining Soongsil University
JTLS-GO GIS Tool Updates
Computer Engg, IIT(BHU)
Chapter 13 & 14 Software Testing Strategies and Techniques
JavaScript: Control Statements.
Mean Shift Segmentation
CSCI1600: Embedded and Real Time Software
Number and String Operations
Indexing and Hashing Basic Concepts Ordered Indices
Hydrological Feature coding
Vector Geoprocessing.
CSCI1600: Embedded and Real Time Software
Chapter 13 & 14 Software Testing Strategies and Techniques 1 Software Engineering: A Practitioner’s Approach, 6th edition by Roger S. Pressman.
Presentation transcript:

Version 1.2, Jan. 2013Grid generation 1/32WW Winter School 2013 Automated Grid Generation for WAVEWATCH III Arun Chawla The WAVEWATCH III Team + friends Marine Modeling and Analysis Branch NOAA / NWS / NCEP / EMC

Version 1.2, Jan. 2013Grid generation 2/32WW Winter School 2013 Outline  Covered in this lecture: The grids necessary for running WAVEWATCH III codes The reference data used for creating the grids The different modules of a grid generation software to develop the grids Additional changes needed to the grids to allow two – way communications between grids for multi-grid WAVEWATCH III

Version 1.2, Jan. 2013Grid generation 3/32WW Winter School 2013 Motivation WAVEWATCH III requires 3 grids (1 necessary and two optional)  A bathymetry grid (necessary)  A land –sea mask grid (optional in WW III v 2.22, needed in multi-grid version of WW III)  Obstruction grid to account for energy decay due to sub- grid blocking (optional) Development of these grids can be a fairly arduous task. This is specially true for multi-grid version of WW III where grid consistency across overlapping grids is necessary for accurate two – way coupling. To facilitate this we developed a set of algorithms that can automatically create accurate grids with minimal input from the user. The necessary tools have been developed using MATLAB.

Version 1.2, Jan. 2013Grid generation 4/32WW Winter School 2013 MODULES Step 1: Build a bathymetric grid from a high resolution base bathymetry Step 2: Create an appropriate land / sea mask to accurately depict coast lines Step 3: Mask out un-necessary water bodies Step 4: Generate obstruction grids for unresolved islands Step 5: Identify nodes for exchanging boundary information (multiple-grid only)

Version 1.2, Jan. 2013Grid generation 5/32WW Winter School 2013 Reference Data Two types of high resolution reference data available  A global high resolution bathymetry data set  ETOPO2 from the National Geophysical Data Center 2’ arc length global relief bathymetry data set  ETOPO1 from the National Geophysical Data Center 1’ arc length global relief bathymetry data set  A global shoreline database in the form of polygons (GSHHS - Global Self-consistent Hierarchical High- resolution Shoreline) Algorithms will be designed to meld the high resolution bathymetry with the shoreline database to develop the optimum grids.

Version 1.2, Jan. 2013Grid generation 6/32WW Winter School 2013 Subroutines A grid generation routine  Generates a grid from base bathymetric data set. We use global ETOPO2/ETOPO1 bathymetry netcdf files. (NOTE: To use this routine your matlab should be able to handle netcdf files. Capability is available as open source) A boundary extraction routine  Extracts a subset of boundaries from a global set of polygon boundaries (GSHHS) A land-mask routine  Blends the bathymetric data with the coastal boundaries to develop an accurate land-sea mask A water body routine  Groups the wet cells into different water bodies (each having a unique id) A sub-grid obstruction routine  Develops sub-grid obstruction matrices in x and y direction for wet cells

Version 1.2, Jan. 2013Grid generation 7/32WW Winter School 2013 Flow Chart High resolution grid (e.g. ETOPO2) GSSHS boundary polygons (5 resolution levels) Grid generator lat lon depth Boundary extractor bound Generate obstruction grid Optional land mask polygons Create WAVEWATCH III files Depth, obstruction and mask data Create mask mask Boundary check Separate water bodies Sx,Sy

Version 1.2, Jan. 2013Grid generation 8/32WW Winter School 2013 Putting it together GRIDGEN/ (Parent directory) Reference_data/ (base bathymetry and coastal polygons) bin/ (individual matlab subroutines) examples/ (Templates of master scripts used to generate grids)

Version 1.2, Jan. 2013Grid generation 9/32WW Winter School 2013 Grid Generation Routine Routine uses 2D averaging to interpolate the higher resolution (reference) grid at the lower resolution Averaging carried out over all the reference “wet cells” that lie within a grid cell If the proportion of reference wet cells is less than user specified cut-off (ranging between 0 and 1) then the grid cell is marked dry. Averaging filters out higher spatial frequencies and prevents aliasing Grid points Reference grid points Grid cell Reference grid cell

Version 1.2, Jan. 2013Grid generation 10/32WW Winter School 2013 Bathymetry (Hawaiian islands) using different cutoffs for proportion of wet cells

Version 1.2, Jan. 2013Grid generation 11/32WW Winter School 2013 Boundary extraction routine Uses the GSHHS (Global Self-consistent Hierarchical High-resolution Shoreline) polygon database. High resolution data is available as mat files at 5 resolutions  Full  high (0.2 km)  intermediate (1 km)  low (5 km)  coarse (25 km) Only accounts for land – sea boundaries (ignores lakes) Properly splits boundaries that are intersecting grid domain boundary  Important to properly close boundaries for land masks and sub grid obstructions

Version 1.2, Jan. 2013Grid generation 12/32WW Winter School 2013 Improperly closed boundaries

Version 1.2, Jan. 2013Grid generation 13/32WW Winter School 2013 Splitting a boundary properly

Version 1.2, Jan. 2013Grid generation 14/32WW Winter School 2013

Version 1.2, Jan. 2013Grid generation 15/32WW Winter School 2013 Full Resolution Global Boundary Global boundaries Grid domain Sub-set boundaries

Version 1.2, Jan. 2013Grid generation 16/32WW Winter School 2013 Land-sea mask routine A first order land mask (based on a depth cutoff) is determined The land mask routine then  Checks all wet cells near the boundaries  Switches wet cells to dry if a proportion of cell within the boundary > user specified cutoff (currently set at 0.5) Land mask routine needed to  Account for land masses not present in base bathymetry grid  Resolve discrepancies between shoreline data base and base bathymetry shorelines  Account for additional polygons

Version 1.2, Jan. 2013Grid generation 17/32WW Winter School 2013 To compute proportion of cell inside boundary Equally spaced points spread throughout the cell Determine number of points enclosed within boundary Number of points inside boundary/Total number of points

Version 1.2, Jan. 2013Grid generation 18/32WW Winter School 2013 Land-Sea Mask (Bahamas 15 min grid) Red – Wet Cell Blue – Dry Cell White – Wet cell switched to dry cell

Version 1.2, Jan. 2013Grid generation 19/32WW Winter School 2013 Depth (0.1) Depth + Mask

Version 1.2, Jan. 2013Grid generation 20/32WW Winter School 2013 Optional  Boundary Splitting Mask cleaning requires checking parts of cell being inside/outside a boundary For very large boundaries this can be a very cumbersome process An optional algorithm splits up the larger boundaries into more manageable smaller boundaries. Significantly speeds up the mask cleaning algorithm

Version 1.2, Jan. 2013Grid generation 21/32WW Winter School 2013 Boundary Splitting

Version 1.2, Jan. 2013Grid generation 22/32WW Winter School 2013 Wet cell clean up routine Cycle through all the wet cells and flag all connected cells with the same id Independent water bodies have different ids Function returns an id map that allows users to switch cells of a particular water body from wet to dry Switching of cells can either be done inside the routine with a flag option, or outside by the user

Version 1.2, Jan. 2013Grid generation 23/32WW Winter School 2013 Wet Cell clean up (contd.) Initialize all wet cells as unmarked Starting from first unmarked cell with marker value at 1, mark all connected wet cells with the same marker If more unmarked cells then increment marker by 1 and repeat step 2. Keep repeating steps 3 and 2 till no longer unmarked wet cells End result is a mask map with the wet cells grouped into independent water bodies

Version 1.2, Jan. 2013Grid generation 24/32WW Winter School 2013 Obstruction grid algorithm Start from the final land – sea mask and boundary polygons (not the split polygons) Following the algorithm outlined in obstruction grid presentation build the obstruction grids for all the wet cells Assign obstructions next to dry cells to zero (to prevent spurious attenuation of wave energy)

Version 1.2, Jan. 2013Grid generation 25/32WW Winter School 2013 At this point The grid generation software has created  A bathymetric grid  A final land – sea mask  A pair of obstruction grids associated with the land – sea mask and (unresolved) boundaries within the grid When using WW-III in single grid mode this is all the information needed to create model definition files When using WW-III in multiple grid mode with two – way nesting between the grids further considerations have to be made that will be outlined next If building multiple grids, repeat steps till now for each of the individual grids before proceeding to the next step

Version 1.2, Jan. 2013Grid generation 26/32WW Winter School 2013 Multi-grid algorithms  Additional changes to support two – way nesting Two way nesting in WW-III occurs as follows  Boundary information from low resolution grids to high resolution grids  Grid cell averaging from high resolution back to low resolution  Grid resolution across overlapping grids of similar resolution In multi-grid WW-III, masks can have a value of 0 (land), 1 (ocean), 2 (boundary ; for data transfer from low resolution grids) and 3 (undefined ; outside the domain). Two additional algorithms to modify the masks for multi-grid WW-III  A mask modifying algorithm that identifies boundary positions  A mask reconciliation algorithm

Version 1.2, Jan. 2013Grid generation 27/32WW Winter School 2013 Modifying mask

Version 1.2, Jan. 2013Grid generation 28/32WW Winter School 2013 Modifying masks Once grid information for all the individual grids have been developed, the modify mask routine can be used with pairs of base and higher resolution grids to modify masks for exchange of information from low resolution to high resolution Exchange of information from high to low resolution does not occur at a boundary so mask does not need to be modified Lowest resolution grid also does not need the mask to be modified If using the entire higher resolution grid (instead of carving out a domain inside the grid) then the polygon is defined by the corners of the grid For overlapping grids with similar resolution (where data is reconciled) a common overlap area has to be defined

Version 1.2, Jan. 2013Grid generation 29/32WW Winter School 2013 Overlapping grids principle Grid 1 Grid 2 Overlaping length = stencil_width * global_time_step/CFL_time_step + stencil_width*global_time_step/CFL_time_step+1

Version 1.2, Jan. 2013Grid generation 30/32WW Winter School 2013 Overlapping grids Grid 1 extends from 65N to 82 N Grid 2 extends from 77.5S to 77.5 N Putting it together …

Version 1.2, Jan. 2013Grid generation 31/32WW Winter School 2013 Overlapping grids If there is not enough overlapping domain in overlapping grids of similar resolution the WW-III model will fail Since the minimum required domain width is a function of the global and CFL time steps in the respective grids, changing any can have an important impact on required overlapping domain width Land – sea masks in the two grids with overlapping domains has to be similar An optional land – sea mask reconciliation algorithm has been developed  Compares two sets of masks in an overlapping domain  If the mask at any location are different then they are both set to land values (0)

Version 1.2, Jan. 2013Grid generation 32/32WW Winter School 2013 The end End of lecture