Summary
You can use GENERATE with the LINE subcommand to create the Minimum Bounding Rectangle (MBR) for a DSnnnP coverage in preparation for ARCDFAD conversion.
Procedure
- Determine the lowest XMIN and YMIN between the L and P coverages, and the highest XMAX and YMAX between the coverages. You can automate this process with AML.
/* EXTENTS.AML
/*
/* USAGE: &RUN EXTENTS <cover_1,cover_2,...,cover_n>
/*
/* PURPOSE: This AML determines the lowest XMIN, the lowest YMIN,
/* the highest XMAX, and the highest YMAX among a group of
/* coverages.
/*
/* NOTES: The <cover_1,cover_2,...,cover_n> argument has a limit
/* of 4096 characters.
/*
/* This is not an ESRI supported AML. Please use at your own risk.
/* Also, please make a backup of your data before running this AML
/* and carefully check the output. This is just a skeleton AML with
/* no real error checking. It is meant only as a guide to developing an
/* AML specific to your data inputs and desired outputs.
/*Capture the comma delimited list of coverages from &RUN command ...
&args covlist:REST
/*Check proper usage ...
&if [null %covlist%] &then
&call usage
&else
&call analyze
&return
/**************
&routine analyze
/**************
/*Get extents of first coverage ...
&sv covlist = [unquote %covlist%]
&describe [extract 1 %covlist%]
&sv .xmin = %DSC$XMIN%
&sv .ymin = %DSC$YMIN%
&sv .xmax = %DSC$XMAX%
&sv .ymax = %DSC$YMAX%
/*Create a list omitting first coverage ...
&sv covlist2 = [unquote [after [quote %covlist%] [extract 1 %covlist%]]]
/*Compare each coverage to previous to determine the lowest extent
/*minimums and highest maximums ...
&do i &list %covlist2%
&describe %i%
&if %.xmin% > %DSC$XMIN% &then &sv .xmin = %DSC$XMIN%
&if %.ymin% > %DSC$YMIN% &then &sv .ymin = %DSC$YMIN%
&if %.xmax% < %DSC$XMAX% &then &sv .xmax = %DSC$XMAX%
&if %.ymax% < %DSC$YMAX% &then &sv .ymax = %DSC$YMAX%
&end
&ty The extents for all input datasets are:
&ty %.xmin% %.ymin% %.xmax% %.ymax%
&return
/**************
&routine usage
/**************
&ty No input coverage(s) specified.
&ty USAGE: &RUN EXTENTS <cover_1,cover_2,...,cover_n>
&return
- Use GENERATE with the LINE subcommand. Create a temporary coverage with the MBR arc using the min and max extents of all data.
Code:
GENERATE tempcov
LINE
1
<xmin> <ymin>
<xmin> <ymax>
<xmax> <ymax>
<xmax> <ymin>
<xmin> <ymin>
END
END
QUIT
- BUILD the temporary coverage for LINE. This will create the .AAT INFO file.
- If any arcs of the DSnnnP coverage have a cover-ID of 1, they will conflict with the MBR arc's ID. You can avoid this by doing the following before using GET:
Code:
CALC the DSnnnP-ID = DSnnnP-ID + 1
- In ARCEDIT, make the temporary coverage the edit coverage with EDITFEATURE ARC and GET the DSnnnP coverage arcs. Save the edits and quit.
- Store a backup of the DSnnnP coverage outside the workspace to be converted with ARCDFAD. Then COPY the temporary coverage to the ARCDFAD workspace, using the original DSnnnP name.
Note:
DFAD 1-C data has extents that encompass 1 whole decimal degree. For example, a DFAD data set could have an extent such as:
xmin = 20
ymin = 30
xmax = 21
ymax = 31
However, the ARCDFAD converter does not check for such an extent. It will convert data even if it has an x and y extent that exceeds or is less than a full decimal degree. Appropriate data extents can be checked in the DFAD format specifications.