This document is archived and information here might be outdated.  Recommended version.

GeoSurvey (ArcObjects .NET 10.8 SDK)
ArcObjects Help for .NET developers > ArcObjects Help for .NET developers > ArcObjects namespaces > GeoSurvey


Supported with:
  • ArcGIS for Desktop Standard
  • ArcGIS for Desktop Advanced
Library dependencies: Version, System, SystemUI, Geometry, GraphicsCore, Display, Server, Output, Geodatabase, GISClient, DataSourcesFile, DataSourcesGDB, DataSourcesOleDB, DataSourcesRaster, DataSourcesNetCDF, GeoDatabaseDistributed, GeoDatabaseExtensions, Carto, NetworkAnalysis, Location, GeoAnalyst, Animation, Maplex, Geoprocessing, NetworkAnalyst, Schematic, SpatialAnalyst, 3DAnalyst, GlobeCore, EngineCore, TrackingAnalyst, Framework, Desktop.Addins, GeoDatabaseUI, DisplayUI, OutputUI, Search, Catalog, CatalogUI, CartoUI, DataSourcesRasterUI, ArcCatalog, ArcCatalogUI, ArcMap, ArcMapUI, AnimationUI, Editor, GeoReferenceUI, EditorExt, LocationUI, GeoDatabaseDistributedUI, GeoprocessingUI, OutputExtensions, OutputExtensionsUI, ArcScan, NetworkAnalystUI, SpatialAnalystUI, SchematicUI, 3DAnalystUI, ArcScene, GlobeCoreUI, ArcGlobe, Publisher, PublisherUI, MaplexUI, TrackingAnalystUI

Additional library information: Contents, Object Model Diagram

Geosurvey engine is a library of classes used to build and manage a structure created from the parcel fabric and to process the data in this structure to update the positions of the coordinates it holds. The structure is called a packet and it is created as an extracted portion of the data held in the fabric's primary storage data model. For more information about the parcel fabric data model, see GeodatabaseExtensions library overview.
The methodology used by the geosurvey engine to update the positions of coordinates is a least-squares adjustment method. The fabric data model has been developed specifically to allow parcel data to be processed through adjustment processes such as the one provided through the geosurvey engine. For more information on the general principles of measurements and adjustment, see About the least-squares adjustment.
For more information about the fabric adjustment used in the geosurvey engine, see the downloadable document at the Survey Analyst-Cadastral Editor product page.
Parcel fabrics are also known as cadastral fabrics. In general, the terms "parcel fabric" and "parcel editor" are used when referring to the product and user interface. The terms "cadastral fabric" and "cadastral editor" are used in reference to the underlying library classes, properties, and methods.

See the following sections for more information about this namespace:

Geosurvey fabric adjustment

The fabric adjustment used in the geosurvey engine has been created specifically to handle the type of data found on cadastral record documents. Using record values on lines from cadastral records and treating them as observations in a least-squares adjustment have been employed successfully in a number of other applications and have usually been developed in-house by large cadastral authorities.
The following information is complementary to the About the least-squares adjustment topic but is presented in the context of the information held in the parcel fabric.
The following are requirements to perform a least-squares adjustment:
  • Line geometry - The coordinates of the line ends are used as starting points for improvement by least squares (called provisional coordinates). Pairs of points define the initial line geometry (shape) prior to the adjustment of the coordinates. The fabric data model has a points fabric class to represent these coordinate pairs. The parcel points fabric class has attribute fields to store XYZ coordinates. After changes to these coordinates by least squares, the line geometry "follows along" because it is a part of a network with shared nodes that connect the line ends together.
  • Redundancy - Fabric points (shared nodes) can be thought of as having a one-to-one relationship with the actual parcel corners in the field. The scenario where there is more than one cadastral fabric point record in the points table that is intended to represent just a single parcel corner in the field should be avoided. The parcel corner is, in most cases, shared with one or more other parcels. Redundancy occurs when multiple lines radiate out from a single FromPoint, or multiple lines share the same ToPoint, or a combination of these. Redundancy also occurs when lines have the same FromPoint and ToPoint. In all these cases, lines can potentially also overlap. This is important when considering the scenario of maintaining the parent parcel records after doing a parcel split - the original parent parcel lines are overlapped by the child parcel lines.
  • Line dimensions - All lines must have bearing and distance attributes (coordinate geometry [COGO] attributes). These come from the original survey record. Circular curve lines are also represented, and the additional attributes for radius, arc-length, and so on are also required attributes for any circular curve lines processed through the least-squares adjustment.
  • Line weights - All lines must have a weight defined by an accuracy category. These are not ordinal-defined weights; they are defined quantitatively using standard deviations. For the purposes of ease of use, they are organized into numbered categories. There are seven categories of weights that are created by default whenever a parcel fabric is created. These are represented in the Accuracies table. Each category has three numeric values (two for distance and one for bearing) and a Description field. Category 7 lines do not participate in the least squares at all. This means that category 7 lines have no influence in the processing of the least squares, and consequently have no weight.

    Category 1 lines have the most influence and highest weight. This does not mean that the end points of the highly weighted lines do not move. They could potentially move a considerable distance if the provisional coordinates are inaccurate. What it does mean is that the orientation or bearing and the length of the line (as defined by the resulting coordinates after adjustment) will have changed less from the record values (COGO attributes) than those of the lines that have a lower weight. Lower weight lines are allowed to "wiggle" away from their record values more than lines of high weight.
  • Control points - Hold published coordinates for a surveyed physical location. Control point coordinates are not changed by the least-squares adjustment. Control coordinates are a key factor in improving spatial accuracy. At least two control points are required to run a least-squares adjustment.


When using the geosurvey engine, meters are always assumed. This means that the data passed into these functions needs to be converted to meters for distances and for coordinates. Similarly, for angles and bearings, the geosurvey engine always assumes radians, and the directions are north-azimuth based.

Ground-to-grid correction

All distances entered into the geosurvey engine are assumed to be based on ground distances. The control points' elevation data is used to reduce to grid coordinates during the adjustment.
The rotation on a parcel is an observable, the same as with coordinates, meaning that it is estimated by the least-squares adjustment process. The provisional rotation is defined when joining the parcel. After the least-squares adjustment, the new rotation value is updated and stored on the parcel. The same is true for the scale attribute that is stored on each parcel.
The combined scale factor, however, is handled differently. It is used during the least-squares adjustment to reduce the ground distances (all distances are assumed at ground) to compute grid coordinates. It is calculated based on the elevations provided on control points, and the location of the parcels.

Geosurvey engine and naming conventions

The classes representing the data stored in the packet data structure follow a similar pattern to the primary data model of the parcel fabric. Generally, a packet is equivalent to a Cadastral Job, as defined in the GeodatabaseExtensions library overview. The class names used to refer to parts of the geosurvey data structure typically have identical (or very similar) names to those found in the Cadastral Fabric library, with the exception that they are prefixed with GS as shown in the following list of classes that are used to create and manage the data structure or cadastral packet:
  • CadastralExtension - Creates a cadastral packet and accesses the two modes of the packet that represent either the edit packet or the job packet.
  • CadastralPacket - The primary class manages and accesses the different parts of the cadastral packet data structure. From the CadastralPacket class, you can access the parcels, points, lines, plans, accuracy, line point, and control information in the packet. You can also create an instance of these packet objects. The fabric adjustment process is launched from this class using the ICadastralAdjustment interface.
  • GeoSurveyFunctions - Provides miscellaneous routines for reporting or editing data elements of the packet.
  • GSAccuracy - Accesses the standard deviations represented by particular accuracy categories.
  • GSPlan - Manages and edits the plan information represented in the packet. For example, to change the name of the plan or the direction format.
  • GSParcel - Manages and edits the parcel information represented in the packet. For example, to obtain the set of line points or to change the Accuracy category.
  • GSLine - Manages and edits the line information represented in the packet. For example, to change the distance to match the original record.
  • GSPoint - Manages and edits the point information represented in the packet.
  • GSLinePoint - Manages and edits the line point information represented in the packet.
  • GSControlPoint - Manages and edits the control point information represented in the packet.