# Patent

## Title
Meteorology and oceanography geospatial analysis toolset

## Abstract

System and method for providing access to ArcMap netCDF utilities and adding support for observational data to ArcMap including, but not limited to, comparing observational data to model data in a graphical manner, and maintaining the security classifications for each layer in ArcMap so that the highest security classification of the data being viewed is known at all times.

## Background
CROSS-REFERENCE TO RELATED APPLICATIONS
This application is a continuation-in-part of U.S. patent application Ser. No. 14/047,367, entitled METEOROLOGY AND OCEANOGRAPHY GEOSPATIAL ANALYSIS TOOLSET, filed on Oct. 7, 2013, which is a divisional of U.S. Pat. No. 8,576,229, issued on Nov. 5, 2013, the entirety of both patent and patent application are hereby incorporated by reference into the present application.


BACKGROUND
Methods and systems disclosed herein relate generally to adding further capabilities for accessing netCDF data using ArcMap. For a description of the current netCDF/ArcMap interface and capabilities, see http://webhelp.esri.com/arcgisdesktop/9.3/, from which the following information has been, in part, derived. NetCDF (Network Common Data Form) is a set of software libraries and self-describing, machine-independent data formats that support the creation, access, and sharing of array-oriented scientific data. A netCDF file contains dimensions, variables, and attributes. A netCDF dimension has both a name and a size and can be used to represent a real physical dimension, for example, time, latitude, longitude, or height. A variable represents an array of values of the same type, and has a name, a data type, and a shape described by its list of dimensions specified when the variable is created. NetCDF attributes are used to store ancillary data or metadata.
ArcMap is the main component of the ARCGIS® suite of geospatial processing programs, and is used for all map-based tasks including cartography, map analysis, and editing of geospatial data. Through ArcMap, it is possible to explore data within a data set, symbolize features accordingly, and create maps. In the ArcMap geographic data view, geographic layers are symbolized, analyzed, and compiled into GIS data set. Drawing properties of the GIS data layers in the data frame can be organized and controlled by ArcMap geographic data view, making the geographic data view a window into a GIS data set for a given area. In the ArcMap layout view, map pages contain geographic data views as well as other map elements such as scale bars, legends, north arrows, and reference maps. ArcMap is used to compose maps on pages for printing and publishing. A shapefile is a digital vector storage format for storing geometric location and associated attribute information. The shapefile format can store primitive geometrical data types of points, lines, and polygons.
Although ArcGIS can be used to create raster layers, feature layers, and table views from netCDF data in ArcMap, or convert feature, raster, and table data to netCDF, what is needed is a toolset for further utilizing the capabilities of ArcMap with netCDF data.
SUMMARY
To address the above-stated needs, the present embodiment is configured to, for example, but not limited to, compare observational data to model data in a graphical manner, and maintain the security classifications for each layer in ArcMap so that the highest security classification of the data being viewed is known at all times. Further, the density and sizes of wind and water symbols can be automatically adjusted based on the zoom level of the view, a longitude-latitude grid can be overlaid over the map, and the grid can be automatically adjusted based on the zoom level of the map. Finally, the regions identified by the netCDF files included in the model directories can be displayed in ArcMap, the regions can be color-coded, and the region being accessed can be highlighted.
One embodiment includes a method for creating a vertical cross section on a map including, but not limited to, the steps of receiving a cross section maximum depth and a cross section slice location, creating a data frame in a conventional geospatial processing computer program, accessing selected netCDF data from a numerical model, the selected netCDF data coinciding with a cross section line along the cross section slice location to the cross section maximum depth interpolating between the selected netCDF data points along the cross section line if necessary, creating a raster pixel-by-pixel using the selected netCDF data and, if necessary, the interpolated data along the cross section line, adding the raster to the data frame, indicating the cross-section slice location on the map, creating an X-axis and a Y-axis and adding the X-axis and Y-axis to a cross section display, adding a title to the cross section display, setting a color scheme of the raster, and creating a window to focus on the cross section slice location on the map. The method can optionally include the steps of receiving a cross section contour line switch and a cross section bathymetry switch, adding contouring to the raster if the cross section contour line switch is on, creating a bathymetry layer, and adding the bathymetry layer if the cross section bathymetry switch is on.
In another embodiment, a method for displaying profile data can include, but is not limited to including, the steps of receiving profile information, storing the profile information in a shapefile, adding the profile shapefile to a profile layer on the map, and adjusting symbols based on the age of the profile information. The method can optionally include the steps of receiving a selected model data location of the numerical model data, receiving a selected profile location of a profile observation, adding a marker to the map to denote the model data location and the profile location, accessing the profile observation and the selected numerical model data, graphing the profile observation and the selected numerical model data on a chart.
In yet another embodiment, a method for analyzing profile observations and numerical model comparisons can include, but is not limited to including, the steps of parsing matchup data associated with the profile observation and the selected numerical model data, performing statistics on the parsed matchup data (avg diff, RMS diff, correlation coeff) in daily, weekly, monthly, quarterly, and yearly groupings, and displaying profile and bar graphs based on the parsed matchup data, the profile observation, and the selected numerical model data.
In another embodiment, a method for displaying altimetry data can include, but is not limited to including, the steps of receiving altimetry data, storing the altimetry data in a shapefile, adding the shapefile as a layer on a map, and adjusting symbols based on the sea surface height of the altimetry data. The method can optionally include the steps of receiving an altimetry point range, accessing the altimetry data based on the altimetry point range, adding the altimetry data to the map, and coloring the altimetry data in the chart the same as the map altimetry data.
In still another embodiment, a method for performing multiple add layer operations can include, but is not limited to including, the steps of receiving a list of user-defined add layer operations, saving the operation list, and executing the user-defined add layer operations from the operation list. The method can optionally include the steps of determining the security classification of at least one layer added during the step of executing, appending the security classification of the at least one layer to a name of the at least one layer, and if the security classification is higher than a displayed highest security classification, updating the displayed highest security classification with the security classification. The step of determining the security classification can include, but is not limited to including, the step of selecting a means for said determining the security classification from a group consisting of retrieving the security classification from the selected numerical model data and accepting the security classification from a user.
In another embodiment, a method for maintaining a security classification for visible layers can include, but is not limited to including, the steps of determining the visible layers of a map, determining at least one security classification of selected numerical model data associated with the visible layers, adding at least one classification layer to the map, the at least one classification layer having a name based on the determined at least one security classification, updating the security classification of the map based on the determined at least one security classification, maintaining the displayed security classification on the map as the map changes and as the determined at least one security classification changes, and displaying the highest security classification of the visible layers.
In another embodiment, a method for creating a vector layer using numerical model data can include, but is not limited to including, the steps of verifying that the numerical model data includes u- and v-component data, creating a u-component raster layer containing the u-component data, creating a v-component raster layer containing the v-component data, calculating magnitude and direction information from pixel data from the u-component and v-component raster layers, storing the magnitude and direction in a shapefile, and creating a symbol layer based on the shapefile. The method can optionally include the steps of receiving symbol shape information, adjusting symbols in the symbol layer based on the symbol shape information, and adjusting characteristics of the symbols based on the zoom level of the map.
In another embodiment, a method for displaying numerical model data coverage can include, but is not limited to including, the steps of storing regional bounds of latitude and longitude from the numerical model data in a shapefile, and adding a layer based on the shapefile.
In another embodiment, an automated method for creating a classified renderer can include, but is not limited to including, the steps of receiving the number of levels for the classified renderer, receiving a minimum value for a first pre-selected classification level, assigning a color for the first pre-selected classification level, receiving a maximum value for a second pre-selected classification level, assigning a color for the second pre-selected classification level, and creating the classified renderer by evenly dividing values between the first level and the second level, and by determining a color ramp between the first color and the second color.
In another embodiment, a method for adding hillshades for a raster layer can include, but is not limited to including, the steps of receiving any of azimuth, altitude, Z factor or model shadows, automatically creating a hillshade layer, automatically placing the hillshade layer under the selected raster layer, automatically grouping the hillshade layer with the selected raster layer, and automatically making the selected raster layer partially transparent.
In another embodiment, a method for automatically adjusting the size of symbols on a map can include, but is not limited to including, the steps of automatically determining a zoom level of the map, automatically determining a symbol size and a symbol density for the zoom level, and automatically adjusting a displayed size and a displayed density of the symbols on the map to the symbol size and the symbol density. The method can optionally include the steps of receiving a symbol color and a symbol direction, verifying that a selected layer contains vector data that can be adjusted, the selected layer having layer symbols, adjusting the displayed size and the displayed density of the layer symbols based on the symbol size and the symbol density for the zoom level, adjusting a displayed color of the layer symbols based on the symbol color, and adjusting the displayed direction of the layer symbols based on the symbol direction.
In another embodiment, a method for automatically adjusting the map grid density can include, but is not limited to including, the steps of automatically determining a displayed zoom level of the map, automatically determining a zoom level number of grid lines for the displayed zoom level, and automatically adjusting the displayed number of grid lines based on the zoom level number of grid lines.
In another embodiment, a method for adjusting the units of data involving a raster can include, but is not limited to including, the steps of automatically determining displayed data units associated with the raster, automatically determining an optimum data unit conversion, automatically converting the data according to the optimum data unit conversion, and automatically adjusting the raster based on the converted data.
In another embodiment, a method for adjusting a symbol layer having values comparing the observed data and model data can include, but is not limited to including, the steps of verifying that the symbol layer includes matchup data that can be adjusted, displaying a user menu including model date, variable, statistic, model depth and model TAU, the user menu based on the values, receiving selections based on the user menu, and adjusting the symbol layer based on the selections.



BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1A is a screen shot of profile plots of the present embodiment;
FIG. 1B is a schematic block diagram of the method for the profile plotting tool of the present embodiment;
FIG. 2A is a screen shot of pre-calculated model-observation matchup data;
FIG. 2B is a screen shot of a model performance bar graph;
FIG. 2C is a screen shot of a model performance matchup graph;
FIG. 2D is a screen shot of a model performance scatter plot;
FIG. 2E is a schematic block diagram of the method for the performance model tool of the present embodiment;
FIG. 3A is a screen shot of cross section creation;
FIG. 3B is a flowchart of the method of the vertical cross section tool of the present embodiment;
FIG. 4A is a screen shot of profile observation locations;
FIG. 4B is a schematic block diagram of the method for processing profile observation;
FIG. 5A is a screen shot of a security classification display;
FIG. 5B is a schematic block diagram of the method for security classification labels;
FIG. 6A is a screen shot of computed vectors;
FIG. 6B is a schematic block diagram of the method for processing vector layers;
FIG. 7A is a screen shot of region boxes;
FIG. 7B is a schematic block diagram of the method for processing region boxes;
FIG. 8A is a screen shot of altimetry data positions;
FIG. 8B is a schematic block diagram of the method for processing altimetry files;
FIG. 8C is a screen shot of an altimetry data plot;
FIG. 8D is a schematic block diagram of the method for processing altimetry plots;
FIG. 9A is a screen shot of a procedure creation user interface;
FIG. 9B is a screen shot of a procedure selection user interface;
FIG. 9C is a screen shot of the result of executing a procedure created according to the present embodiment;
FIG. 9D is a schematic block diagram of the method for procedure creation and execution; and
FIG. 10 is a schematic block diagram of the system of the present embodiment.



DETAILED DESCRIPTION
The problems set forth above as well as further and other problems are solved by the present teachings. These solutions and other advantages are achieved by the various embodiments of the teachings described herein below.
To create a workspace in the present embodiment, ArcMap is activated, and an existing map or new empty map is opened or created. A file system location for storing the layer information is identified, and directory locations for the netCDF files being accessed are entered along with a date range. By setting the earliest date to nothing, all files in the model directories prior to and including the latest date can be processed and accessible. In the present embodiment, layer adding tools can be used to add raster and feature layers to ArcMap, layer adjusting tools can manipulate the layers, analysis tools can be used to compare data added by the other tools, and maintenance tools can provide access to settings and features that make the other tools easier to use.
To create new layers in ArcMap by accessing netCDF files, the add layer tool creates a raster layer based on a selected parameter, depth, and TAU, optionally creates contours for a raster layer, optionally adds wind or water symbols for parameters associated with magnitude and direction parameters in a netCDF file, optionally adds wind or water symbols by calculating the magnitude and direction based on u/v components from a netCDF file, and optionally adds a soundspeed raster layer by calculating the soundspeed using water temperature and salinity parameters. In the present embodiment, the parameter name is used to identify which function is being performed by the tool. If the parameter ends with “_mag/dir”, symbols will be created based on magnitude and direction parameters from the netCDF file. If the parameter ends with “_u/v”, symbols will be created based on calculations for magnitude and direction from u/v components in the netCDF file. If the parameter ends with “_soundspeed”, a raster layer will be created based on calculations for soundspeed from water temperature and salinity components in the netCDF file. The magnitude, direction, u, and v components being searched for within the netCDF file are adjustable. Other parameters can signify that a raster layer will be created based on the parameter.
To select the netCDF file to base the layer being created, the file can be chosen by selecting the model that is associated with the netCDF file, followed by selecting the region encompassed by the netCDF file and finally the model's start date. Once the model is selected, the region can be selected by clicking on the map near the desired region. These three options (model, region, and start date) can narrow the available netCDF files to a single file for the parameter to be selected. Alternatively, the file browser can be used to locate the netCDF file required. Once the netCDF file being accessed is determined, the parameter being displayed can be selected followed by the depth/height and TAU of the parameter. If the parameter cannot be used to add symbols to ArcMap, a contour of the raster and the contour's interval can be included. If the parameter can be used to add symbols to ArcMap, the type of symbol being added can be identified, wind barbs or arrows can be added, and the maximum number of symbols to include in the layer can be limited, among other options. The units of the resulting layer can be determined and displayed. The units may be adjusted by, for example, but not limited to, clicking on the label at the top of the tool to switch between native netCDF units and converted units.
In the present embodiment, after the parameter is chosen and the options have been selected, the layer in ArcMap can be created. The coloring scheme for a raster can be specified. For example, for the rasters displayed with a stretch renderer, the high and low values can be based on the values in the netCDF file for the parameter. Symbol density and size can be adjusted based on the current zoom level. Manual adjustments to the symbols can be made possible. A raster with a size smaller than the netCDF region can be created. A copy of the layer can be saved as a JPEG file.
In the present embodiment, a raster layer can be created in ArcMap that displays the differences between two parameters. The difference can be based on, for example, comparing the same parameter for different depths/heights or different TAUs, or the difference can be based on any two parameters from any two models as long as the models' regions overlap. The depths and TAUs difference operations can simplify the selections when the same parameter is being compared based on different depths/heights or TAUs, respectively. To select the netCDF files being used to create the difference layer, the models that are associated with the netCDF files can be selected, followed by selecting the regions encompassed by the netCDF file and the models' start date. After the model is selected, the region can be selected. The parameters being compared can be selected along with the depth/height and TAU of each parameter. The coloring scheme for the difference raster can be specified. For the rasters displayed with a stretch renderer, the high and low values can be based on, for example, the differenced values in the raster. A copy of the layer can be saved, for example, as a JPEG file. In the present embodiment, displayed values can be converted between the netCDF files native units and converted units.
A statistical layer can be created in ArcMap by calculating, for example, but not limited to, the mean, variance, and standard deviation of a parameter's value over a series of TAU values. To select the netCDF files being used to create the statistical layer, for example, the model that is associated with the netCDF file, the region encompassed by the netCDF file, and the model's start date can be selected. After the netCDF file being accessed is determined, the parameter that the statistic is based upon and the depth/height of the parameter can be selected. The TAU values being used for the statistic's calculation can be determined by, for example, but not limited to, a TAU range string. A range creation tool can be provided to help create a valid TAU range. After the parameter has been chosen and the TAU range has been entered, the layer in ArcMap can be created and the coloring scheme for a raster can be specified. For the rasters displayed with a stretch renderer, the high and low values can be, for example, based on the values in the raster. Symbol density and size can be adjusted based on the current zoom level. Manual adjustments to the symbols can be possible. The option is provided to convert all of the values displayed by the ARCOAS tools between the netCDF files native units and converted units. By clicking on the label at the top of the tool, this option switches between the native units and converted units. The resulting layer will also be in the units chosen.
In the present embodiment, observation files can be read and their results can be displayed in ArcMap as profiles. The file formats can be, for example, but not limited to, binary containing profile data, binary and ASCII files containing altimeter data, binary, ASCII, and netCDF files containing sea surface temperature data, and image files. An observation type can be chosen, a single file or multiple files can be processed at once. The present embodiment reads the observation file(s) and organizes the layers in ArcMap. The layers created can have points indicating the locations that the observations occurred. The profile points can be colored so that the newer observations are darker than the older observations. The altimeter points can be colored based on the sea surface height value, and the sea surface temperature points can be colored based on the sea surface temperature value. For sea surface temperature data, raster layers can be created and displayed in order to speed up the map refreshes. All of the data from the files can be contained in the created feature layers' table. Optionally, only the profile observations within the range of the model regions may be added to the feature layer.
A comma-separated valued (CSV) file can be read and the results can be displayed as a raster in ArcMap. The display field and cell size can be adjusted prior to layer creation. Multiple CSV files can be processed simultaneously. Longitude and latitude can be taken from the first CSV file in the list.
A wavelet file can be read and the results can be displayed as a raster in ArcMap. The resulting layer can be connected to the associated netCDF file and can be used to create cross-sections. The netCDF files created during the wavelet conversion process can be placed in the wavelet directory of the workspace and can be accessed later. The area of the wavelet file can be displayed in the map as a white rectangle. Optionally, the netCDF data can be restricted to a subset of the wavelet file by drawing a box with the mouse which is displayed in orange or set manually using the NetCDF extent boxes. Multiple wavelet files can be processed simultaneously by selecting multiple files from the file browser. The wavelet file can be converted to a netCDF file. The raster layer can be connected to the netCDF file and can be used to create a cross-section. The present embodiment can calculate the slope of an existing raster layer and display the results as a raster in ArcMap. The units for the output layer can be, for example, but not limited to, degrees, percentage, or Z factor which can adjust the output as well.
The present embodiment can set multiple raster layers with the same options simultaneously. For a stretch renderer type, the adjustable settings for the rasters can include the number of color ramps used by the stretch render, the maximum and minimum values for the raster and the colors associated with the maximum and minimum values for each color ramp. Setting both the maximum and minimum values to 0 can allow the selected rasters to adjust the high and low values based on the values within the rasters. The null value can be used to identify the value that will be ignored by the renderer and displayed with a transparent color. For a classified renderer type, the adjustable settings for the raster can include the number of classification levels being rendered as well as the maximum and minimum values for each classification level being rendered. In the present embodiment, a classified renderer can be created by selecting the number of levels for the classified renderer, inputting a minimum value for the top level, assigning a color for the top level, inputting a maximum value for the bottom level, and assigning a color for the bottom level. The classified renderer can be created by entering evenly divided values for each level and colors between the two colors selected.
In the present embodiment, a hillshade can be applied to a raster layer in a map allowing the azimuth, altitude, Z factor and model shadows to be adjusted. The azimuth is the angle of the light source and it is a value between 0° and 360° measured clockwise from north. The altitude is the angle of the light source above the horizon and it is a value between 0° and 90° with 0° being at the horizon and 90° being directly overhead. The Z factor is the number of ground x,y units in one surface z unit The z values can be multiplied by the Z factor when calculating the raster layer. The model shadows option can allow both local illumination angles and shadows to be considered for the output. The hillshade layer can be placed under the original raster layer and grouped with the original raster layer. The original raster layer can be made partially transparent so that the hillshade can be seen.
In the present embodiment, the density and size of the wind barb and arrow symbols can be changed if a layer containing wind barbs or arrows is visible in ArcMap. Further, in the present embodiment symbols can be thinned so that the focus can be placed on the symbols greater than some value. Still further, the color of the arrows can be adjusted, and the symbols in the selected layer can be flipped by 180°. In the present embodiment, the density of the grid overlaid on the map can be changed if the grid layer is visible in ArcMap, by enlarging or shrinking the gap between the grid lines. The matchup layer in ArcMap can be adjusted to display a statistic for a particular date and depth. The units of the data referenced by the layer can be converted.
Referring now to FIG. 1A, observational data 31 and model data 33 can be compared through the use of a plot. The locations of the observation data and model data are noted in the map by a marker and highlighted observation point 231 (FIG. 1A). To produce a comparison plot, a profile layer must have been added to ArcMap. Plots can be produced whenever the mouse click is within range of either a profile point or the model's netCDF data. To restrict the profile and model data available for plotting, a time range can be adjusted. Selections of observations and model TAUs can be restricted to those that occur within the specified number of hours of a pre-selected date. The profile point being compared can be chosen either automatically or manually. The profile and model parameter being plotted can be selected independently with both being plotted if, for example, the parameters are the same, for example, salinity/temp or soundspeed. The graph can be refreshed with changed profile, model, or parameter information for the same longitude and latitude location as a previous plot. Statistics taken from the selected profile point or model can be added to the plot. The model data's longitude and latitude position can be determined by clicking the map. The closest model data point can be plotted along with the profile data, if applicable. The closest profile point to a clicked location can be chosen and the model data's point can be determined using the profile point's position rather than a clicked location.
Referring now to FIG. 1B, method 150 for plotting profile data can include, but is not limited to including, the steps of verifying 11 that a profile layer exists, verifying 13 that model data exists, selecting 15 netCDF data, selecting 17 profile observation, adding 19 markers to the map to denote clicked location and selected profile, accessing 21 profile and netCDF data, and adding 23 profile and netCDF data to the chart.
Referring now to FIG. 2A, pre-calculated model-observation matchup data as well as metrics calculated using this matchup information can be plotted. The displayed results can then be used to compare observational data to model data. Several statistics, for example, but not limited to, mean error 51, rms error 53, and correlation coefficient 55, can be calculated from the matchup data for the forecasts. Region and parameter selection boxes can be populated, and the graphs for the selection are plotted, based on the statistics calculations. As the region and parameters are adjusted, so are the graphs. The display of the statistics can be based on grouping the data by day, week, month, quarter, or year. If the matchup data are loaded using matchup files, it is possible to create a matchup layer. The layer created has points indicating the locations that the observations matchups occurred. The points can be colored so that, for example, the values near 0 are white, negative values are shades of red, and positive values are shades of green. Points with invalid matchup values can be marked with a circled X. All of the matchup data from the file(s) can be contained in the created feature layer's table.
Referring now to FIG. 2B, bar graphs over dates for the Mean Error, RMS Error, and Correlation Coefficient for a selected depth level can be displayed. The dates being displayed can be adjusted.
With respect to pre-calculated model-observation matchup data, the system and method of the present embodiment bring the appropriate model and observation values are together automatically, cycle after cycle, so that a modeler can have the latest set of matchup statistics. The latest collected observed data are accessed, and matches are found with forecasts for the data from multiple forecast cycles. A moment in time such as 00Z can be forecasted for at least four times if the model runs to TAU 96 every 12 hours. Thus an observation for a time within a window can be considered for matching on multiple model runs, which in real-time may mean constant checking for updated observations. As the matching occurs, the location of a given observation is mapped to a location in a model grid which is read from netCDF by cutting a thin slice or box around the location and then figuring the value using bilinear interpolation in space and time (nearest time can also be used) at each of the netCDF levels. To get the TAU interpolation, the netCDF files can be staged to contain the TAUs surrounding the times for which interpolation is desired. The observation profiles can be interpolated to the netCDF levels or vice versa or to some given set of levels. A piece-wise cubic interpolation can be used, for example. Where there is no value for the observation or the model at a level, no matchup is made there. The binary file output of the matchups consists of arrays of structured arrays for each matchup instance containing relevant information that can be used by model performance software within the GUI, information such as the location, time, name of the observation platform, model information, level values, and TAU used. When one or more of these files is loaded in the GUI, statistics can be immediately calculated for each of the daily cycles separately and plotted in profiles or bar charts. These statistics can subsequently be combined by week, month, quarter, etc. as is previously described. Also, the aforementioned structured data can be accessed providing a wealth of information about the matchups. Within the GUI tool, matchups can also be created on the spot for selected observation (profile and ship) files and model (netCDF) files.
A method for evaluating numerical model performance can include, but is not limited to including, creating matchup data as described above between model data from the numerical model and observed data, associating attributes with points of the matchup data, receiving evaluation criteria, thinning the points based on the evaluation criteria, computing statistics associated with the thinned points, displaying the thinned points, displaying the attributes of a point of the thinned points when the point is moused over, displaying at least one profile associated with the point when the point is clicked on, and evaluating the model performance based on the displayed attributes and the displayed at least one profile.
Referring now to FIG. 2C, the actual values from the model and the observations as well as the differences between these values for every depth can be displayed. The data are organized based on the observation call sign and observation time. Additional information can be overlaid in the graph, for example, sonic layer depth and surface elevation. If the matchup data have been read from a matchup layer, the selected observation can be highlighted in ArcMap. A matchup can be deleted to remove the matchup from the scatter plot calculations, but not the pre-calculated profile graphs. If a matchup layer is created after the matchup deletion, the deleted matchup may not be contained in the matchup layer.
Referring now to FIG. 2D, a comparison between the model value and the observation value for every matchup point can be displayed as a scatter plot. A line with a slope of one and a trend line for the data can be provided for reference. The mean difference, rms difference, and correlation coefficient statistics can be calculated based on the points included in the scatter plot. The points included in the scatter plot can be adjusted by, for example, changing the TAU range and/or the level range. A second matchup graph can display the matchup values for a particular point in the scatter plot. A point can be selected in the scatter plot by hovering the mouse over the desired point. The second matchup graph can switch to the selected observation with the graph focused on the point's depth. A copy of the any of the graphs can be saved as an image file in, for example, but not limited to, GIF, JPG, PNG, or CSV format.
Referring now to FIG. 2E, method 200 for plotting model-observation matchup data can include, but is not limited to including, the steps of parsing 37 matchup data, calculating 39 statistics using the matchup data (for example, but not limited to, mean, RMS, correlation coefficient), displaying 41 calculated statistics in profile graphs and bar graphs, and displaying 43 original data in profile graphs and scatter plots. Further functions that can be performed include creating the matchups on the fly (ad-hoc), 2) narrowing down date range criteria, and 3) narrowing down spatial range criteria (restriction) by drawing a box on the map and fine tuning the bounds on the menu (could be done even without creating and displaying the map layer which means selecting in the map blindly).
Referring now to FIG. 3A, a cross section of an existing netCDF raster layer can be created that can display the raster's values along a line for all of the netCDF file's depths. Multiple cross section results can exist simultaneously. A raster layer that remains connected to the netCDF file can be created. A maximum depth for the cross section is determined and a line delineating the location of the cross section can be made, for example, using a mouse. Contours can be added to the cross section. The resulting cross section can be displayed in a separate data frame from the existing layers. Included in the display of the cross section can be window 72 which can display the location of cross section line 70 on the original map. Cross section line 70 can be displayed with a number to indicate to which cross section it pertains. Deleting the cross section frame can delete cross section line 70 from the original map.
Referring now primarily to FIG. 3B, method 250 for creating a vertical cross section can include, but is not limited to including, the steps of verifying 61 that net CDF data exists, accepting 63 user input with respect to the location of the desired cross section, accessing 67 the netCDF data and interpolating values in the location of the desired cross section, creating 69 an output raster and preparing the raster for display, adding 71 a cross section raster to a new ArcMap dataframe, and adding an axis and title, and adding 73 line 70 on the original map to indicate the location of the cross section slice.
Referring now to FIG. 4A, observation files can be read and the results can be displayed in ArcMap. The file formats supported can be, for example, but not limited to, binary files containing profile data, binary and ASCII files containing altimeter data, binary, ASCII, and netCDF files containing sea surface temperature data, and image files. An observation type can be read, and a single file or multiple files can be processed at once. The observation file(s) can be organized in layers in ArcMap. The layers created can have profile points 180 indicating the locations that the observations occurred. Profile points 180 can be colored so that the newer observations can be darker than the older observations. Altimeter points can be colored based on the sea surface height value, and the sea surface temperature points can be colored based on the sea surface temperature value. For sea surface temperature data, raster layers can be created and displayed in order to speed up the map refreshes. Data from the files can be contained in the created feature layers' table, and these data can be restricted to data within the range of the model regions.
Referring now to FIG. 4B, method 250A for processing profile observation data can include, but is not limited to including, the steps of accepting 121 user input associated with selecting profile observation data, parsing 123 profile observation information, creating 125 a shapefile to store profile information, and adding 127 the shapefile to the map.
Referring now to FIG. 5A, the map's and/or layer's current security classification can be changed to a new classification, for example, Unclassified, Confidential, Secret and Top Secret. Classification labels 74 overlaying the map can be disabled in ArcMap.
Referring now primarily to FIG. 5B, method 300 for security classification labeling can include, but is not limited to including, adding 81 a layer to ArcMap, obtaining 83 a security classification for a layer, appending 85 the security classification to the name of the layer, and updating 87 security classification label 74 (FIG. 5A) on the map.
NetCDF file settings can include those options associated with the variables and attributes in the netCDF files. The settings can be used to search the netCDF files for specific information. The u-component and v-component settings can be used to search the netCDF file for two variables which are identical with the exception of the u- and v-components. If these two variables are located, the magnitude and direction can be calculated so that a vector layer can be added to ArcMap. Similarly, the magnitude component and direction component can be used to find two variables which are identical with the exception of the magnitude and direction components so that a vector layer can be added to ArcMap. The classification parameter can be used to locate the attribute for the security classification of the netCDF file. This security classification can be used as the security classification for the layers created from the netCDF file. The settings for a newly created raster can include the maximum and minimum values for the raster as well as the colors associated with the maximum and minimum values. Buttons to color selectors can be provided to help with entering the RGB values for the colors. Arrow symbol settings can be included so that the arrow font can be changed to the desired font. An option can be provided to allow adjustment of the size and density of the symbols based on the zoom level of ArcMap. The default maximum number of symbols created by the Add Layer tool can be adjusted.
Referring now to FIG. 6A, vectors 105 can be added if, for example, one of the following sets of variable is contained in a single netCDF file: u- and v-component variables, magnitude and direction variables, or direction variable only. Further, the variable names can be named similarly with a single part of the term differentiating between the two components, for example, water_u and water_v, water_mag and water_dir, etc., NetCDF settings can be set to identify the differentiating part of the variable correctly, for example, u-Component=_u, v-Component=_v, etc., and the parameter combo box in the model selection interface can be set to the variable ending with _u/v, _mag/dir, or the direction component. When a vector layer is created, the vector layer can be adjusted based on the zoom level to improve the display of the vectors. Vector layers can be adjusted when the map view changes based on the zoom level to improve the display of the vectors.
Referring now primarily to FIG. 6B, method 350 for creating vector layers can include, but is not limited to including, the steps of accepting 91 user input the delineating area in which the vector layer is to be created, verifying 93 that the necessary netCDF components exist, accessing 95 u- and v-component data from the netCDF file, calculating 97 magnitude and direction using the u- and v-component data, creating 99 a shapefile to store the magnitude and direction results, adding 101 the shapefile with the vector data to ArcMap, and adjusting 103 vector symbols 105 (FIG. 6A) based on the zoom level of the map.
Referring now to FIG. 7A, when a longitude-latitude grid is overlaid over the map, and the grid is automatically adjusted based on the zoom level of the map, regions 121 identified by the netCDF files included in the model directories can be displayed in ArcMap. The regions can be color-coded based on the model name assigned during the setup process. The region being accessed can be highlighted. The netCDF file to base the layer being created can be chosen by selecting the model that is associated with the netCDF file, followed by selecting the region encompassed by the netCDF file and finally the model's start date. These three options—model, region, and start date—can narrow the available netCDF files to a single file for a parameter to be selected. The map view can be restricted to only the area being worked, and the map can be restricted to, for example, but not limited to, a predefined feature layer or to a custom extent defined by the user.
Referring now primarily to FIG. 7B, method 400 for creating region boxes can include, but is not limited to including, the steps of accepting 111 user input with respect to netCDF file locations, creating 113 a shapefile to store netCDF region information, adding 115 latitude and longitude bounds from netCDF files to the shapefile, and adding 117 the region shapefile to the map.
Referring now to FIG. 8A, altimetry observation layers are displayed after their addition to ArcMap. Referring now to FIG. 8B, method 450B for providing altimetry observation layers can include, but is not limited to including, the steps of accepting 131 user altimetry file input, parsing 133 altimetry information, creating 135 a shapefile to store altimetry information, and adding 137 the altimetry shapefile to the map.
Referring to FIG. 8C, altimetry data can be analyzed by creating a graph to display the sea surface height values between two selected altimetry points. The colors of the points within the graph can be based on the colors of the points in ArcMap.
Referring now to FIG. 8D, method 450A for plotting altimetry data can include, but is not limited to including, the steps of verifying 141 altimetry data, selecting 143 an altimetry point range, accessing 145 selected altimetry data based on the altimetry point range, adding 147 the altimetry data to the chart, and, if 149 there is another altimetry range specified, repeating steps 143-149.
Referring now to FIG. 9A-9C operations such as, for example, adding a raster layer, adding a symbol layer, adding a difference layer, adding an observation layer, and zooming to a location on the map, that are performed often can be organized so that the operations can be performed as one procedure, possibly scheduled. Aspects of an operation in the operation list can be edited, for example, date information, layer details, envelope restrictions, and image creation. Raster color schemes can be assigned to parameter names from netCDF files. New parameters can be added to the list and existing parameters can be removed from the list. Color schemes can be edited to create new color schemes for rasters. The null value can be used by the stretch renderer to identify the value that is assigned a transparent color. The number of levels can be used as the number of color ramps used by the stretch renderer or the number of classification levels being rendered by the classified renderer.
Referring now to FIG. 9D method 500 for selecting procedures can include, but is not limited to including, accepting 201 user procedure input with respect to which operations are to be part of the procedure, selecting 203 procedures to run, if 205 there are further operations to execute as part of the procedure, either add layer 207, create difference layers 209, create statistics layer 211, add observations 213, or zoom 215, if 219 there are other operations, repeat steps 205-219, otherwise, if 221 there are no other procedures, repeat steps 205-221.
Referring now to FIG. 10, system 100 for manipulating netCDF data using ArcMap can include, but is not limited to including, CPU 1015 executing cross section processor 1017, profile processor 1019, altimetry data processor 1021, add layer processor 1023, security classification processor 1025, vector layer processor 1027, model display processor 1029, hillshade processor 1031, symbol processor 1033, grid processor 1035, and units processor 1037. Each processor received either model or netCDF data 1013, and prepares processed data 1020 for processing by ArcMap 1011, which can display those processed data as display data 1022 at output 1010.
The present embodiment is also directed to a system and methods that can be executed in hardware, firmware, and/or software for accomplishing the methods discussed herein, and, possibly, computer readable media storing software for accomplishing these methods and system. The various modules described herein can be provided in conjunction with a single CPU, or on an arbitrary number of different CPUs. Other alternative computer platforms can be used. The operating system can be, for example, but is not limited to, WINDOWS® or LINUX®. Communications links can be wired or wireless, for example, using cellular communication systems, military communications systems, and satellite communications systems. Any data and results can be stored for future retrieval and processing, printed, displayed, transferred to another computer, and/or transferred elsewhere.
In compliance with the statute, the present embodiment has been described in language more or less specific as to structural and methodical features. It is to be understood, however, that the present embodiment is not limited to the specific features shown and described, since the means herein disclosed comprise preferred forms of putting the present embodiment into effect.
Referring again to FIGS. 1B, 2E, 3B, 4B, 5B, 6B, 7B, 8B, 8D, and 9D, methods 150, 200, 250, 250A, 300, 350, 400, 450A, 450B, and 500 can be, in whole or in part, implemented electronically. Signals representing actions taken by elements of systems that implement the methods of the present embodiment, and other disclosed embodiments can travel over at least one live communications network. Control and data information can be electronically executed and stored on at least one computer-readable medium. The system can be implemented to execute on at least one computer node in at least one live communications network. Common forms of at least one computer-readable medium can include, for example, but not be limited to, a floppy disk, a flexible disk, a hard disk, magnetic tape, or any other magnetic medium, a compact disk read only memory or any other optical medium, punched cards, paper tape, or any other physical medium with patterns of holes, a random access memory, a programmable read only memory, and erasable programmable read only memory (EPROM), a Flash EPROM, or any other memory chip or cartridge, or any other medium from which a computer can read. Further, the at least one computer readable medium can contain graphs in any form including, but not limited to, Graphic Interchange Format (GIF), Joint Photographic Experts Group (JPEG), Portable Network Graphics (PNG), Scalable Vector Graphics (SVG), and Tagged Image File Format (TIFF).
Although the present teachings have been described with respect to various embodiments, it should be realized these teachings are also capable of a wide variety of further and other embodiments.

## Claims

1. A method for evaluating numerical model performance comprising:
Accessing observed spatial data comprising a plurality of observed locations;
cutting a box around each of the plurality of observed locations in the observed spatial data;
determining an observed value for each of the plurality of observed locations by applying a bilinear interpolation to each of the plurality of observed locations;
creating matchup data by applying a cubic interpolation to match each observed value to a modeled location in model data of the numerical model wherein the matchup data describes differences between the model data and the observed data;
associating attributes with points of the matchup data;
receiving evaluation criteria;
thinning the points based on the evaluation criteria;
computing statistics associated with the thinned points;
displaying the thinned points on a geographic map that is rendered on a display;
displaying the attributes of a point of the thinned points when the point is moused over in the geographic map;
displaying at least one statistical profile associated with the point when the point is clicked on in the geographic map; and
displaying performance metrics of the numerical model that are generated based on the attributes and the displayed at least one statistical profile.