Field Definitions - Edit definitions of feature properties and user defined fields
With this function you can modify the definitions of predefined status fields (feature properties or data fields) or define new ones.
- Move Up : Moves the active field one row up (increases priority of fields with the same name).
- Move Down : Moves the active field one row down (decreases priority of fields with the same name).
- Add (Taste Alt+A): Adds a new field with the current settings to the list after the current position (only possible if all parameters are filled in correctly and there is no other field with the same description). If there is already a field with the same field name and type, a warning is displayed.
- Update (Taste Alt+U): Updates the settings of the active field (only possible if they have been altered, all parameters are filled in correctly and there is no other field with the same description). If you select another field without clicking on before, you will be asked if you want to update the previously modified field (), skip the changes () or continue to edit the field ().
- Remove (Taste Alt+R): Deletes the active field from the list (confirm with ). If you want to delete a field that is used in the function of other fields, a warning is displayed. You should not delete those fields, but hide them (select Hidden at Status), otherwise you will obtain unexpected results and errors at the evaluation.
Note: You can define several fields with the same field name and data type but different functions and descriptions. You can select each version of this field in the selection list of the dialog (via its description). But if you use this field name in the functions of other fields, only the first definition is used (thus the order in Fields defines the priority of the different versions among each other).
If there is a status field of this name for the same data type, the calculation expression of this field is evaluated. Thus you can use other status field in the calculation expression, that don't have to exist in the table. If no field with this name and type is defined, the data table is searched for a corresponding field. If a field can't be found in a table too, a dialog window appears at evaluation time in which the user must enter the value of the missing parameter (see Update Fields).
If you use a undefined field name in the calculation expression, a warning is displayed. If you always want to use the field value of the table instead of the predefined status field, add blanks between field name and brackets (e.g. [ Area ]).
Please note that the following field names are internally predefined and should not be used:
Note: You should better hide fields you don't need at the time instead of deleting them.
Note: The decimal point itself consumes one place of the field width, i.e. the number of possible pre-decimal places results from the total field width minus the number of decimal places minus 1.
Note: The changes of the field definitions will get lost if you uninstall the extension Arc4You Data. If you install the extension again, the standard definitions of all fields are available.
The following list shows all predefined status field and their calculation expression:
Field Name |
Description |
Function |
RecID |
Record number |
[Rec] |
Single Point |
||
XCoord |
X-coordinate of the point |
[Shape].GetX |
YCoord |
Y-coordinate of the point |
[Shape].GetY |
MultiPoint |
||
Parts |
Number of single points |
[Shape].Count |
Width |
Maximum width (distance) |
[Shape].ReturnExtent.GetWidth Max [Shape].ReturnExtent.GetHeight |
Extent |
Area width (map units) |
[Shape].ReturnExtent.ReturnArea |
Density |
Density measure (area representation of each single point) |
[Extent]/[Parts] |
PolyLine |
||
Length |
Line length in map units |
[Shape].ReturnLength |
Parts |
Number of satially separated lines) |
[Shape].CountParts |
Vertices |
Number of single points |
[Shape].AsMultiPoint.Count |
Width |
Maximum width (distance) |
[Shape].ReturnExtent.GetWidth Max [Shape].ReturnExtent.GetHeight |
Extent |
Area extension |
[Shape].ReturnExtent.ReturnArea |
Distance |
Distance from startpoint to endpoint |
[Shape].AsLine.ReturnLength |
Linearity |
Measure for linearity/curvature |
[Length]/[Distance] |
Polygon |
||
Area |
Area in map units |
[Shape].ReturnArea |
Perimeter |
Perimeter in map units |
[Shape].ReturnLength |
Acres |
Area in acres |
Units.ConvertArea([Area],[Unit], #UNITS_LINEAR_YARDS)/4840 |
Hectares |
Area in hectar |
Units.ConvertArea([Area],[Unit], #UNITS_LINEAR_METERS)/10000 |
Parts |
Number of partially separated areas |
[Shape].Explode.Count |
Holes |
Number of real holes (islands) |
[Shape].CountParts - [Parts] |
Vertices |
Number of single points |
[Shape].AsMultiPoint.Count |
Width |
Maximum width (distance) |
[Shape].ReturnExtent.GetWidth Max [Shape].ReturnExtent.GetHeight |
Extent |
Area extension |
[Shape].ReturnExtent.ReturnArea |
Diameter |
Area diameter (approximate value) |
[Shape].AsPolyLine.AsLine.ReturnLength |
Thinness |
Measure of thinness (see below) |
[Width]*[Width]/[Area] |
Roughness |
Measure of rougness (see below)) |
[Perimeter]/[Area].Sqrt/4 |
Convexity |
Measure of convexity (approximate value) |
[Shape].ReturnBuffered([Width]*1.02).ReturnBuffered(-[Width]).ReturnArea/[Area]-0.15 Max 1 |
Wideness |
Widest point (largest diameter) |
av.Run("Lib.Shape.Center", {[Shape],0}).Get(1) |
Narrowness |
Narrowest point (smallest diameter) |
av.Run("Lib.Shape.Narrow", {[Shape],0}).Get(1) |
QDRatio * |
Extension measure (reciprocal of Thinness between 0 and 1=square) |
[Area]/[Width]/[Width] |
Compactnes* |
Measure for Compactness |
[Area]/[Perimeter]/[Perimeter] |
Circularity* |
Circularity (measure for compactness between 0 and 1=circle) |
[Area]/[Perimeter]/[Perimeter]*Number.GetPi*4 |
Unevenness* |
Measure for unevenness (reciprocal of Circularity) |
[Perimeter]*[Perimeter]/[Area]/Number.GetPi/4 |
Convexness* |
Measure for convexness (very slow but exact calculation) |
av.Run("Lib.Shape.Hull",{[Shape],0}).ReturnArea/ [Area] |
* These shape measures are very similar to others and are therefore not displayed (status Hidden).
Comments to some special functions:
The Thinness of a polygon is the proportion between the square of its maximum extent and its area. It presents the reciprocal of the so called QDRatio or Thickness Ratio (which is for instance used at the extension Edit Tools from Ianko Tchoukanski). The larger the value, the thinner the polygon (at a value of 10 the polygon covers only 1/10 of its extent). Squares reach the minimum value 1.
The Roughness of a polygon is the proportion between its perimeter and the perimeter of a square of the same size and describes the frayness of the polygon outline. In opposite to the so called Sliver Ratio (ratio of area to extent) it is independent from the polygon size. The larger the value, the more frayed and ramified is the outline of the polygon (at a value of 10 the perimeter of the polygon would be 10 times longer as of a square). Squares reach the value 1, circles the minimum value of circa 0.7.
The thinness is in contrary to the roughness independent from the frayness of the polygon outline. A dense network of finest veinlets would achieve a large roughness, but a small thinness (if it covers most of its extent).
© 2003 WLM Klosterhuber & Partner OEG