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:

  • [Shape]: The graphic feature (already projected when using a projection in the view - use [ Shape ] for the unprojected graphic object from the shapefile).
  • [Unit]: The unit in which the graphic feature is defined (Map Units of the view or projection).
  • [Rec]: The internal number of the record in the table (starting at 0).
  • [VTab]: The table object (the table that is updated).

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