Syntax FACTORY_DEF SectorFactory [FACTORY_NAME ] [INPUT FEATURE_TYPE [ ]* []*]* SITE_FIELD AZIMUTH_FIELD [SECTOR_FIELD ] [BEAMWIDTH_FIELD ] RADIUS [INNER_RADIUS ] MAX_DISTANCE [INPUT_CLUSTERED [(YES|NO)]] [GROUP_BY []+]* [FLUSH_WHEN_GROUPS_CHANGE (Yes|No)] [OUTPUT (SECTOR|AZIMUTH_LINE|SITE_POINT|EXTRA_POINT| DISTANT_POINT|INCOMPLETE_POINT|ILLEGAL_GEOM|REJECTED) FEATURE_TYPE [ ]* []*]* Overview This factory takes as input a number of point features, and processes them based on specific attribute data. Each feature has the following: a site name (in the attribute named by SITE_FIELD), an azimuth (in the attribute named by AZIMUTH_FIELD): an angle measured in degrees clockwise from north (e.g., an azimuth of 90 points to east, 180 to south, etc.) which is the direction in which the feature is "pointing", a radius (the value given in RADIUS, which may be a constant, or a per- feature value like &Radius), optionally, an inner radius (which may be a constant or a per-feature value), optionally, a sector name (in the attribute named by SECTOR_FIELD). This is optional in the sense that SECTOR_FIELD is not a required clause; however, if it is specified, then all input features must contain this attribute, and optionally, a beamwidth (in the attribute named by BEAMWIDTH_FIELD). This is optional in the sense that SECTOR_FIELD is not a required clause; however, if it is specified, then all input features must contain this attribute. Assuming the input features represent transmitters of some sort (hereinafter referred to as "sectors"), the SectorFactory generates polygons representing the approximate coverage area of each sector. This factory's behavior depends on whether or not beamwidths are provided. If they are not provided, non-overlapping sectors are generated to cover the circle around the site. At a given site, there may be one or more sectors. If there is only one, its area will be a circle with the given radius. If more than one sector exists at a site, each sector's area will have a sector ("pie slice") shape, again with the radius contained in the specified attribute. The border between adjacent sectors will be at the angle halfway between their azimuths. If beamwidths were provided, each sector will be generated with the fixed width it was provided. In this case sectors may overlap and the sectors may not fully cover the circle around the site. In either case, a non-zero inner radius will cause partial sectors (or bands) to be generated. The point coordinates for the sectors within a site must be within a given distance of each other. This distance is specified by the MAX_DISTANCE clause. Any input features a greater distance than this from their fellow sectors will be output on with the DISTANT_POINT tag. The point used for the center of the generated sectors will be the average of all the input coordinates. If two or more sectors of the same site have the same azimuth, then the generated areas will behave as if there were only one instance of that azimuth, and multiple identically shaped sectors will be output. If the SECTOR_FIELD clause is given, then attributes with the name supplied will contain the name of each sector. This can be used to ensure that the input does not contain duplicate sectors of the same name: any such input features will be output with the EXTRA_POINT tag. Often input data will be in order: Site;Sector;Azimuth;Radius Sector1;A;0;5000 Sector1;B;30;5000 Sector1;C;220;5000 Sector2;A;0;5000 Sector3;A;270;5000 Sector4;C;0;5000 Sector4;A;120;5000 Sector4;B;240;5000 Sector5;A;0;5000 In a case like this, where all the sectors for a given site are guaranteed to be listed together in the input, the INPUT_CLUSTERED clause may be specified. This enables the SectorFactory to save on memory usage by processing each site after all its features have entered the factory, rather than waiting for all features to be input. The GROUP_BY clause can be given if the input contains multiple sets of sites and sectors, grouped according to any number of attributes. In this case, each set is dealt with independently. Since the factory must read in all features to separate them according to group, the GROUP_BY clause cannot be specified when INPUT_CLUSTERED is YES. If the GROUP_BY clause is specified, FLUSH_WHEN_GROUPS_CHANGE (when set to Yes) will cause the factory to process and output the current group immediately when an attribute that does not belong to the current group is encountered. The arc portion of the output sectors is produced by the @Arc function, so the granularity of the line can be adjusted with the mapping file directive FME_ARC_DEGREES_PER_EDGE, which defaults to 5. (For instance, if a sector spans 35 degrees, by default its arc will contain seven edges.) Any input feature that does not contain all the required attributes, or has null or invalid values (i.e., azimuth not in [0, 360) or nonpositive radius) will be output unchanged with the INCOMPLETE_POINT tag. Pictoral examples provided in SectorGenerator transformer documentation. Clauses SITE_FIELD Specifies the name of the feature attribute that holds the site name. Default: None Example:SITE_FIELD Site AZIMUTH_FIELD Specifies the name of the feature attribute that holds the azimuth. Default: None Example:AZIMUTH_FIELD Azimuth SECTOR_FIELD Specifies the name of the feature attribute that holds the sector name. Default: None Example:SECTOR_FIELD Sector BEAMWIDTH_FIELD Specifies the name of the feature attribute that holds the beamwidth. Default: None Example:BEAMWIDTH_FIELD Beamwidth RADIUS Specifies a value to use for the radius of each feature. This can be a constant, a function, or an attribute value (i.e., an attribute name prefixed with "&") Default: None Example 1:RADIUS @Value(Radius) Example 2:RADIUS 12.5 INNER_RADIUS Specifies a value to use for the radius of each feature. This can be a constant, a function, or an attribute value (i.e., an attribute name prefixed with "&") Default: 0 Example 1:RADIUS @Value(InnerRadius) Example 2:RADIUS 7.5 MAX_DISTANCE Specifies the maximum allowable distance between sectors of the same site. Any input features a greater distance than this from other features of the same site will be output under the tag EXTRA_POINT. Default: None Example:MAX_DISTANCE 0 INPUT_CLUSTERED [(YES|NO)] Specifies whether the input is clustered according to the attribute named with SITE_FIELD. If no argument is given or the argument is YES, then the factory will process the list of features read in so far every time it encounters one with a different site name (to save on memory usage). Cannot be YES when a GROUP_BY clause is present. Default: NO Example: INPUT_CLUSTERED YES GROUP_BY []+ Gives the names of one or more attributes by which to group the input. Each group as handled as though it were a separate factory. Default: All input belongs to the same group Example: GROUP_BY NetworkType FLUSH_WHEN_GROUPS_CHANGE If the GROUP_BY clause is specified, this clause (when set to Yes) will cause the factory to process and output the current group immediately when an attribute that does not belong to the current group is encountered. Output Tags The SectorFactory supports the following output tags. SECTOR Successfully constructed sectors are output with this tag. AZIMUTH_LINE Lines pointing in the direction of the azimuth and having the same length as the sector's radius are output with this tag. SITE_POINT A point for each site, located at the average of all the site's input points, is output with this tag. The attribute designated by SITE_FIELD will be copied onto SITE_POINT output features. EXTRA_POINT This tag outputs points with a sector name that already belongs to a sector within the same site. DISTANT_POINT This tag outputs points that are a greater distance from other points in the same site than the tolerance specified in MAX_DISTANCE. INCOMPLETE_POINT This tag outputs features which do not contain all the attributes specified by the factory's _FIELD clauses, as well as those which have null values in any of these fields, contain a nonpositive radius, or have an azimuth less than 0 or greater than or equal to 360. ILLEGAL_GEOM Non-point input features are output with this tag.