NAME¶
sdts2dlg - Convert a USGS SDTS DLG to a DLG in the `optional' format.
SYNOPSIS¶
sdts2dlg [-L] | [sdts_dlg_file.ddf [output_file_name]]
DESCRIPTION¶
The U.S. Geological Survey (USGS) provides sites on the Internet with a lot of
Digital Line Graph (DLG) data. Depending on the resolution of the data, it may
be available in one of at least two different formats: the `optional' DLG
format, or the Spatial Data Transfer System (SDTS) format. The 24K DLG data
(which are also called 7.5-minute DLG data) are only available for free
download in the SDTS format.
The
drawmap program can read files in SDTS format; but the SDTS
information comes in the form of archives, each of which contains numerous
files. It may sometimes be more efficient, and perhaps simpler, to store the
data in the `optional' format.
Sdts2dlg is a program that converts each
SDTS archive into a single optional-format DLG file. Currently
sdts2dlg
only works with 24K and 100K DLG data.
If you invoke the program with the "-L" argument, it will print some
license information and exit. In normal use, the first argument is an SDTS
file name.
Each SDTS DLG archive should contain one or more files with names of the form
????LE@@.DDF, where the '?' symbol stands for any single character, and the
'@' symbol stands for any single digit. If you provide a single such file as
an argument,
sdts2dlg will produce an optional-format DLG file, based
on the given SDTS file and the other files in the SDTS archive. (When you
unpack the SDTS archives, you can change all of the resulting file names to
all lower case and/or compress all of the files with the
gzip program.
If you are going to change to lower case, change all of the files. If you are
going to compress the files, compress all of them.)
The USGS takes each 1-degree-square block of latitude and longitude, and divides
it into an eight-by-eight grid of 7.5-minute-square `quads'. The rows of this
grid are labeled 'a' to 'h' from bottom to top, and the columns are labeled
`1' through `8' from right to left. Each quad is then referred to by a name of
the form `AABBBCD', where `AA' is the latitude of the southeast corner of the
1-degree block, `BBB' is the longitude of the southeast corner, and `C' and
`D' represent the corresponding row and column labels. If you don't specify an
output file name, the output file produced by
sdts2dlg will have the
form `AABBBCD.dlg'. For 100K DLG files, each of which generally covers 16
quads, this naming is also used, with the `C' and `D' code being the same as
for the quad with the same southeast corner as the 100K DLG data. If you
specify an output file name, then your name will be used instead.
LIMITATIONS¶
Sdts2dlg attempts to recreate the original DLG-3 file, as it was before
conversion to SDTS. Node entries include line lists, but no area lists. Area
entries include line lists, no node lists, and no area coordinate lists. Line
entries include line coordinate lists. Attributes are included as major-minor
pairs.
Try as it might, though,
sdts2dlg is going to produce files that differ
from the originals. In the Node entries, for example, the line lists have no
preferred ordering, and the output from
sdts2dlg is unlikely to
reproduce the ordering of the original DLG file. In the Area entries, the line
lists do have a specified ordering, but there is no rule for choosing which
line to start each list with. Thus, the lists are unlikely to be exact
duplicates of the original file. Neither of these differences should be a
problem. The lists are still valid, even if they are not identical to the
originals.
For the universe polygon (which completely surrounds the data coverage area) the
Universal Transverse Mercator (UTM) coordinates of its representative point
are likely to be different from the originals. The SDTS files do not appear to
encode this particular representative point, so
sdts2dlg inserts the
coordinates of the southwest corner of the map area.
Some floating-point numbers will have a different format from their original
USGS versions. The USGS files normally put the first significant digit after
the decimal point, while
sdts2dlg puts it in front of the decimal
point. The actual numeric values are the same, but the format differs.
There are two fields in the header that don't always show up in existing
optional-format files, although the specification allows them: the horizontal
datum and the vertical datum. These are too useful to leave out, so
sdts2dlg includes them.
Finally, there may be data discrepancies due to errors in the program. Errors
are a distinct possibility when it comes to attributes. There are many
different kinds of possible attributes, and I have not yet found adequate test
data for some of them.
SEE ALSO¶
drawmap(1), sdts2dem(1)