
External Source Plug-In Documentation
National Oceanic and Atmospheric Administration (NOAA) Coastline Data
This document describes the configuration and usage of the National Oceanic and Atmospheric Administration (NOAA) Coastline file ‘plug-in’ for Gndmaker. Plug-ins extend the basic functionality of Gndmaker without making changes to the base Gndmaker code. Plug-ins exist as separate code modules and are released as Dynamic Link Libraries (DLL’s).
The NOAA Coastline site serves the following data (extracted from the NOAA Coastline site):
For obvious reasons, NOAA data significantly enhances the visual quality of sector files since coastline data can be incorporated easily.
NOAA Coastline data is downloaded from the main NOAA Coastline Extractor site at:
http://rimmer.ngdc.noaa.gov/coast/getcoast.html
The idea is that you specify the bounding co-ordinates of the area you wish to retrieve data for. Entering the co-ordinates can be done either by entering the upper/lower/right/left co-ordinates, or by a Java map program. The area requested is then ‘submitted’ to the NOAA server – resulting in a text file (or zip file) that is downloaded to the user’s computer.
Gndmaker then reads the dataset and generates several [GEO] records to match the data.
The biggest decisions that you will have to make when using Gndmaker on NOAA data are:
There are several data sets that the NOAA Coastline site provides that are applicable to Gndmaker (in order of descending detail):
NOAA/NOS Medium Resolution Coastline (1:70,000)[1]
World Vector Shoreline (1:250,000)
World Data Bank (1:2,000,000)
World Coastline (1:5,000,000)
The larger the resolution number, the less complex the data. For example, for the same geographic area, the World Coastline datasets contains 20 times less data than the World Vector Shoreline.
It is left to the sector file author to decide which NOAA dataset to use based on the trade-off between sector file complexity and visual quality of the file when viewed through an ATC client.
To illustrate this, following are screenshots of the Vancouver Island / Puget Sound area of Canada / United States:
NOAA/NOS Medium Resolution Coastline (1:70,000). File size: 1,007K

World Vector Shoreline (1:250,000). File size: 1,116K

World Data Bank (1:2,000,000). File size: 213K

World Coastline (1:5,000,000). File size: 6K

Once the dataset has been downloaded, the user has the option to perform ‘line reduction’ to reduce line complexity. The key word here is ‘option’. If the dataset is already of the desired resolution/complexity, then line reduction is not necessary.
But, in the case where the NOAA datasets are either too simple or too dense, a dataset can be simplified to get the desired effect. Gndmaker has the ability to perform line reduction based on parameters supplied by the user.

If all goes well, the file generated can then be downloaded to your computer and extracted.
Once you run a Gndmaker import that contains NOAA data, the resulting data is imported as [GEO] objects.
After the import, select ‘GEO’ from the object type drop-down on the main Gndmaker dialog, and click the ‘DB Insert’ button. Each NOAA object will be labeled as ‘NOAA Object ###’, when displayed in the main Gndmaker object list.
Like any Gndmaker plug-in, the configuration of the External Source is done when an individual Search Profile is added to an Import Profile. In the Import Profile Management dialog (Import->Import Profiles), when the ‘Edit’ button is clicked, the External Source Property Page dialog appears:

When ‘NOAA’ is selected from the External Source Type dropdown list and the ‘Options’ button is clicked, the NOAA-specific property page is displayed.

Search Root: point this to the directory where the NOAA data files are stored. Recursive file searches are not supported.
NOAA File: drop-down list of the NOAA dataset files (*.dat) in the specified directory. This list is refreshed every time the Search Root is changed.
Preview: generates a sample sector file with the current Reduction Profile settings, if applicable. The resulting sector file is written to the default Gndmaker location for sector files. Once written, the sample sector file can be loaded for quick review.
Red. Profile: where the Reduction Profile is specified.
When a file is selected from the dropdown, Gndmaker will initially read the file to build a profile of the objects contained (a NOAA file contains what I call ‘objects’ which can be thought of as disconnected line segments making up coastlines, islands, etc.).
The profile built by reading the selected NOAA file tells the user:
The idea is that, based on the profile of the dataset, the user can make an informed option to whether or not to run a line reduction on the dataset. In the example below, if no line reduction is run, you would get a sector file [GEO] section of about 4.4Meg[2]! Obviously, line reduction will be preferred.

(IMPORTANT NOTE: Users should be aware that NOAA data is very 'dirty'. That is, there are a lot of duplicated, de-normalized points, and erroneous segments in the datasets that REALLY screw up the line reduction algorithm - leading to crashes. The second problem was that the line reduction code (from another developer) has a few bugs in it. I think I have a good handle on the problems, but the success rate using this code is not 100%, depending on the area you are importing. I expect further work on this
Currently, there are two 'bad' things that ‘may’ happen when using this functionality. 1) the object in the dataset may be so ‘dirty’ that it can't be reduced. In this case, Gndmaker will write out the dataset to a text file, which you can then send me, and processing continues. And, 2) the line reduction crashes bringing Gndmaker along with it. There is nothing I can do about this (right now). But, if it does happen to you, keep an eye on the progress counter to find out which object in the dataset blows up. Then edit that dataset out of your source NOAA file and hope that it is not a very important object that you are losing).
Reduction profiles can be applied to a raw NOAA dataset to remove unnecessary complexity without losing detail. This is done by filtering out line segments that are either too small, or do not deviate significantly enough from those around it to provide meaningful information.
Line reduction configuration is based on creating a 'reduction profile' for the dataset you are working with. There is a specialized dialog for this creation. When the ‘Red. Profile’ button is clicked from the Property Page dialog:

The line reduction profile consists of a Line Reduction Criteria.
Line Reduction Criteria is based on the number of points in an object. NOAA data files typically are made up of multiple objects in a single file. In the Property Page dialog when a data file is selected, Gndmaker parses the file and builds a distribution of the number of objects of different sizes. This is to give the user an idea of how 'complex' the data file is.
From this information, the user creates reduction criteria to the effect of,
Use the various drop-downs and edit boxes to specify the reduction criteria and ‘Add’ it to the current criteria list.
The order of reduction criteria is important. When the reduction profile is applied the NOAA dataset file is read through, and for each object in the file, the reduction profile criteria are processed sequentially looking for a rule that matches the number of segments in the object. If a match is found, the reduction profile is run on the object – hopefully resulting in an object of the desired complexity.
If reduction criteria entries conflict, the first matching rule is applied – ignoring the remainder.
The idea is to get complex [GEO] data down to a manageable size in the ATC client without losing significant detail
This section discusses some of the implementation details and notes for this Plug-in.
Tip: typically, you can reduce a NOAA dataset by 80%, and still get great results!
Be aware that depending on the complexity of the configuration, you could burn a LOT of CPU cycles to perform the reduction. Please be patient, there is a HUGE amount of processing done to perform the reduction! When it works, it does work great!
Another note, if you see weird lines that take off over the edge of the sector file, it will most likely mean there is a ‘N000.00.000.00 W000.00.000.00’ somewhere in the reduced segments. This usually is a symptom of a bad dataset as well. I'll be glad to help with datasets, if I can.
If you find a bad NOAA dataset, please send it to me at the address on the Gndmaker website.
To be filled in as needed.
Like anything else, I will be happy to help with any questions you may have with Gndmaker, time permitting. I HIGHLY suggest that you first look at the Gndmaker Forums to see if someone else posted a similar message. If you do not find an answer, post the question there.
And as a last resort, send me an e-mail. I cannot guarantee a quick response, but I will try. Also, note that if you register your copy of Gndmaker, you are much more likely to get a fast response (see Section 8L Contribute to Gndmaker).
Like they say, crap happens. If it happens to you, please give me as much information as you can:
As you may have guessed, I do not charge any money for Gndmaker even though I have spent literally THOUSANDS of hours developing it. I consider this a small contribution of my own to the online hobby we all love so much.
But, in reality, Gndmaker is 'POSTWARE' or 'CHARTWARE':
In order to keep me enthusiastic about continuing support for Gndmaker and to provide new, exciting features, I would ask one small favor. If you find Gndmaker useful, PLEASE send me a postcard, or even better, a real-life (paper) navigation chart from your area. Refer to the ‘Contribute!’ link on the Gndmaker website:
http://wirun.homelinux.net/gndmaker
Of course, any monetary, or otherwise, gifts or trinkets will cheerfully be accepted as well. This being a worldwide community, I'm sure people could send me all sorts of cool, inexpensive, stuff from their part of the world ;)
This way I get an indication that my efforts are appreciated and will ensure that Gndmaker has a future.
Those that do 'register' with me will get advance notice of new releases, priority technical support, and a much higher likelihood that I will help out creating sector files for you (if asked)!
Corey MJ Wirun