Batch Importing |
You specify the parameters for the import by assigning a value to a macro variable or by assigning a fileref, as indicated. There are several ways to assign a value to a macro variable, including the %LET statement, the SYMPUT SAS CALL routine in the DATA step, and the SYMPUT/SYMPUTN function in SCL. As long as the value you want is stored in the macro variable along with the required name, it does not matter which method you use. However, all examples in this section use the %LET statement.
There are also several ways to assign a fileref, including the FILENAME statement, the FILENAME function in SCL, and host-specific file allocation mechanisms. However, all examples in this section use a FILENAME statement.
Specifying the Input Parameters |
The input parameters define the type of data to import, the location of the input spatial data, and other specifications for variables in your data set (not necessary for all import types).
You must define a macro variable named IMP_TYPE to indicate which type of data you are going to import. For example, to import a TIGER file, submit the following statement:
%let IMP_TYPE=TIGER;
This parameter is required. The following table contains valid values for IMP_TYPE.
IMP_TYPE Value | Description |
---|---|
TIGER | Topologically Integrated Geographic Encoding and Referencing (TIGER) files from the U.S. Census Bureau and commercial data vendors (2006 Second Edition and earlier) |
DYNAMAP | Dynamap files from Tele Atlas N.V. |
DLG | Digital Line Graph (DLG) files from the U.S. Geological Survey and commercial data vendors |
DXF | Drawing Interchange Files (DXF) produced by a variety of mapping and CAD software applications |
ARC | Uncompressed ArcInfo interchange (E00) files from ESRI. |
SASGRAPH | SAS/GRAPH map data set format |
GENLINE | Generic Line format SAS data set |
GENPOINT | Generic Point format SAS data set |
GENPOLY | Generic Polygon format SAS data set |
MAPINFO | MapInfo Interchange format files from MapInfo Corporation |
You must specify where the input spatial data is located by using either the INFILE macro variable or the required filerefs for your import type.
For the Generic import types and the SASGRAPH import type, you accomplish this by assigning the name of a SAS data set to the INFILE macro variable. You can specify a one-level or a two-level name. One-level names are assumed to be located in the WORK library. For example:
/* The CUBA data set in the MAPS library. */ %let INFILE=MAPS.CUBA;
or
/* The NC data set in the WORK library. */ %let INFILE=NC;
For all other import types, you must allocate filerefs to point to the files that you want to import. See File Reference Table for Batch Importing for additional information about the filerefs for each import type. The following table contains the import types and the filerefs that you are required to assign for them.
Import Type | Fileref |
---|---|
TIGER | assigns the filerefs TIGER1 and TIGER2 for file types 1 and 2, respectively. File types 4, 5, and 6 are optional; these are allocated to the filerefs TIGER4, TIGER5, and TIGER6, respectively. See Hints and Tips for Batch Importing for information about using the optional file types. |
DYNAMAP | assigns the filerefs GDT1 and GDT2 for file types 1 and 2, respectively. File types 4, 5, and 6 are optional; these are allocated to the filerefs GDT4, GDT5, and GDT6, respectively. See Hints and Tips for Batch Importing for information about using the optional file types. |
DLG | assigns the fileref DLGIN to the Digital Line Graph (DLG) file that you want to import. |
DXF | assigns the fileref DXFIN to the Drawing Interchange File (DXF) that you want to import. |
ARC | assigns the fileref ARCIN to the uncompressed file that you want to import. |
MAPINFO | assigns the filerefs MID and MIF to the MapInfo Interchange Format MID file and the MapInfo Interchange Format MIF file, respectively. |
Note: NIDVARS and IDVARn macro variables are for SASGRAPH and Generic Import Types only.
For SASGRAPH and all of the Generic import types, you must provide additional information about variables in your data set.
For SASGRAPH and the Generic Polygon import types, you must identify the number and names of the variables that uniquely identify unit areas in the map, in hierarchical order. The NIDVARS macro variable must be set to the number of identification variables, and the IDVARn macro variables must specify, in order, the names of the identification variables. For example, for a SASGRAPH import of the MAPS.USCOUNTY data set (which contains State and County boundaries), you specify:
%let IMP_TYPE=SASGRAPH; %let INFILE=MAPS.USCOUNTY; %let NIDVARS=2; %let IDVAR1=STATE; %let IDVAR2=COUNTY;
The value of n in IDVARn ranges from 1 to the value that is specified for the NIDVARS macro variable.
For the Generic Line and the Generic Point import types, you can identify a single variable that will be used to generate layer definitions. You set NIDVARS=1 and IDVAR1=layer variable. A layer is created for each unique value of the specified layer variable. If you specify more than 16 layers, only the first 16 layers are added to the map. If you want all features to be added to a single layer, specify NIDVARS=0. For example, to add all points from a data set to a single layer, specify
%let NIDVARS=0;
However, if your points represent stores and you have a SIZE variable that indicates whether the store is small, medium, or large, then you can specify the following to create three separate layers, one for each value of SIZE:
%let NIDVARS=1; %let IDVAR1=SIZE;
During a batch import, numerous working data sets are created in the WORK library. By default, these intermediate data sets are deleted when the batch import is complete. If you encounter problems during a batch import, then you may want to retain these data sets to help identify the cause. To prevent the working data sets from being deleted, specify the following:
%let KEEPTEMP=1;
The AREA, CENTROID, and CENTROID_OPT Macro Variables |
You can specify that the batch import calculate the surface area, perimeter, and centroid of the polygons when importing polygonal data. The following list contains descriptions of the AREA, CENTROID, and CENTROID_OPT macro variables:
specifies whether to calculate the enclosed areas and perimeter lengths for the area composite. Setting the value to 0 indicates that the area and perimeter are not to be calculated. Setting the value to 1 indicates that the area and perimeter are to be calculated. The calculated area is added to the polygonal index data set in a variable named AREA. A label for the AREA variable contains the storage area units. The calculated perimeter is added to the polygonal index data set in a variable named PERIMETER. A label for the PERIMETER variable contains the units.
specifies whether to calculate the centroid of a polygon. Setting the value to 0 indicates that centroids are not to be calculated. Setting the value to 1 indicates that centroids are to be calculated.
specifies the type of centroid to be calculated when the CENTROID macro variable has a value of 1. Setting the value to GEOMETRIC requests the actual calculated centroid, which might fall within the boundaries of the corresponding polygon. Setting the value to VISUAL adjusts the centroid so that it falls within the boundaries of the corresponding polygon. The centroid coordinates are added to the polygonal index data set in variables that are named CTRX and CTRY. Labels for the CTRX and CTRY variables contain the storage projection units and indicate whether it is a geometric or visual centroid.
For example, to calculate the area and visual centroids, specify the following:
%let AREA=1; %let CENTROID=1; %let CENTROID_OPT=VISUAL;
Note: The area, perimeter, and centroids are not calculated unless these macro variables are defined. Once defined, these variables will be used by the Batch Import process until reset in the current SAS session.
Specifying the Output Parameters |
The output parameters define the locations where the output data sets and catalog entries are stored and whether they will be created, replaced, or updated. These parameters are required for all import types. The following table contains the macro variables and a description of the information each specifies.
Macro Variables | Description |
---|---|
MAPLIB | specifies the libref in which the catalog is stored. |
MAPCAT | specifies the catalog in which the entries are stored. |
MAPNAME | specifies the name for the map and coverage entries. |
CATHOW | specifies the action to be used for the catalog entries. Valid values are CREATE, REPLACE, or UPDATE. |
SPALIB | specifies the libref in which the spatial data sets are stored. |
SPANAME | specifies the name of the spatial entry and the prefix for the spatial data sets. |
SPAHOW | specifies the action to be used for the spatial data sets. Valid values are CREATE, REPLACE, or APPEND. |
Initiating the Batch Import |
Before initiating the batch import, define all the input and output parameters you will use in the batch import by setting the values of macro variables or by assigning filerefs. After defining your parameters, initiate the batch import by executing the SASHELP.GISIMP.BATCH.SCL entry.
Note: You do not pass any parameters directly to the SCL entry.
You can execute the SASHELP.GISIMP.BATCH.SCL entry with any one of the following methods:
Enter the following command from a SAS command line:
AF C=SASHELP.GISIMP.BATCH.SCL
Submit a DM statement that will issue the AF command:
DM 'AF C=SASHELP.GISIMP.BATCH.SCL';
Use the CALL DISPLAY routine in an SCL program:
CALL DISPLAY('SASHELP.GISIMP.BATCH.SCL');
Copyright © 2009 by SAS Institute Inc., Cary, NC, USA. All rights reserved.