AGS4 Reference

A brief introduction to the AGS4 geotechnical data format.
ags
ags4
Author

Jules Blom

Published

April 14, 2025

AGS4 is a standardized text file format specifically designed for exchanging geotechnical information between different software systems used in geotechnical engineering. It organizes borehole logs, laboratory test results, and field measurements into structured data tables with validation rules to ensure consistent data quality across the geotechnical industry.

Groups

In the AGS4 format, Groups are organizational containers that structure geotechnical data. Each Group represents a specific aspect of geotechnical investigation, for example, project information (PROJ), location details (LOCA), sample information (SAMP), or specific test types like Standard Penetration Tests (ISPT).

AGS4 Groups are organised in a hierarchical manner. Each sample (SAMP) belongs to a location (LOCA). Each location belongs to a project (PROJ).

Here’s a visual of the hierarchy of groups commonly found in an AGS4 file.

PROJProject information PROJ LOCALocation details PROJ/LOCA ABBRAbbreviation Definitions PROJ/ABBR TRANData File Transmission Information / Data Status PROJ/TRAN TYPEDefinition of Data Types PROJ/TYPE UNITDefinition of Units PROJ/UNIT SAMPSample information PROJ/LOCA/SAMP IPRGIn Situ permeability PROJ/LOCA/IPRG GEOLGeological descriptions PROJ/LOCA/GEOL BKFLBackfill details PROJ/LOCA/BKFL ISPTStandard Penetration Test PROJ/LOCA/ISPT GRAGParticle size distribution analysis PROJ/LOCA/SAMP/GRAG LNMCWater content PROJ/LOCA/SAMP/LNMC IPRTIn Situ permeability data PROJ/LOCA/IPRG/IPRT GRATParticle size distribution analysis data PROJ/LOCA/SAMP/GRAG/GRAT
All Groups Hierarchy Tree

While AGS defines a load of groups, not all of them are used in every project. For reference, here is the full hierarchy tree of all groups.

AGS4 file- AGS4 file PROJProject Information AGS4 file/PROJ ABBRAbbreviation Definitions AGS4 file/ABBR DICTUser Defined Groups and Headings AGS4 file/DICT FILEAssociated Files AGS4 file/FILE TRANData File Transmission Information / Data Status AGS4 file/TRAN TYPEDefinition of Data Types AGS4 file/TYPE UNITDefinition of Units AGS4 file/UNIT LOCALocation Details AGS4 file/PROJ/LOCA SAMPSample Information AGS4 file/PROJ/LOCA/SAMP BKFLExploratory Hole Backfill Details AGS4 file/PROJ/LOCA/BKFL CDIACasing Diameter by Depth AGS4 file/PROJ/LOCA/CDIA CHISChiselling Details AGS4 file/PROJ/LOCA/CHIS CORECoring Information AGS4 file/PROJ/LOCA/CORE DCPGDynamic Cone Penetrometer Tests - General AGS4 file/PROJ/LOCA/DCPG DETLStratum Detail Descriptions AGS4 file/PROJ/LOCA/DETL DISCDiscontinuity Data AGS4 file/PROJ/LOCA/DISC DLOGDriller Geological Description AGS4 file/PROJ/LOCA/DLOG DOBSDrilling/Advancement Observations & Parameters AGS4 file/PROJ/LOCA/DOBS DPRGDynamic Probe Tests - General AGS4 file/PROJ/LOCA/DPRG DREMDepth Related Remarks AGS4 file/PROJ/LOCA/DREM FGHGField Geohydraulic Testing - General AGS4 file/PROJ/LOCA/FGHG FLSHDrilling Flush Details AGS4 file/PROJ/LOCA/FLSH FRACFracture Spacing AGS4 file/PROJ/LOCA/FRAC GEOLField Geological Descriptions AGS4 file/PROJ/LOCA/GEOL HDIAHole Diameter by Depth AGS4 file/PROJ/LOCA/HDIA HDPHDepth Related Exploratory Hole Information AGS4 file/PROJ/LOCA/HDPH HORNExploratory Hole Orientation and Inclination AGS4 file/PROJ/LOCA/HORN ICBRIn Situ California Bearing Ratio Tests AGS4 file/PROJ/LOCA/ICBR IDENIn Situ Density Tests AGS4 file/PROJ/LOCA/IDEN IFIDOn Site Volatile Headspace Testing Using Flame Ionisation Detector AGS4 file/PROJ/LOCA/IFID IPENIn Situ Hand Penetrometer Tests AGS4 file/PROJ/LOCA/IPEN IPIDOn Site Volatile Headspace Testing by Photo Ionisation Detector AGS4 file/PROJ/LOCA/IPID IPRGIn Situ Permeability Tests - General AGS4 file/PROJ/LOCA/IPRG IRDXIn Situ Redox Tests AGS4 file/PROJ/LOCA/IRDX IRESIn Situ Resistivity Tests AGS4 file/PROJ/LOCA/IRES ISAGSoakaway Tests - General AGS4 file/PROJ/LOCA/ISAG ISPTStandard Penetration Test Results AGS4 file/PROJ/LOCA/ISPT IVANIn Situ Vane Tests AGS4 file/PROJ/LOCA/IVAN AAVTAggregate Abrasion Tests AGS4 file/PROJ/LOCA/SAMP/AAVT ACVTAggregate Crushing Value Tests AGS4 file/PROJ/LOCA/SAMP/ACVT AELO - AGS4 file/PROJ/LOCA/SAMP/AELO AFLKAggregate Flakiness Tests AGS4 file/PROJ/LOCA/SAMP/AFLK AIVTAggregate Impact Value Tests AGS4 file/PROJ/LOCA/SAMP/AIVT ALOSLos Angeles Abrasion Tests AGS4 file/PROJ/LOCA/SAMP/ALOS APSVAggregate Polished Stone Tests AGS4 file/PROJ/LOCA/SAMP/APSV ARTWAggregate Determination of the Resistance to Wear (micro-Deval) AGS4 file/PROJ/LOCA/SAMP/ARTW ASDISlake Durability Index Tests AGS4 file/PROJ/LOCA/SAMP/ASDI ASNSAggregate Soundness Tests AGS4 file/PROJ/LOCA/SAMP/ASNS AWADAggregate Water Absorption Tests AGS4 file/PROJ/LOCA/SAMP/AWAD CBRGCalifornia Bearing Ratio Tests - General AGS4 file/PROJ/LOCA/SAMP/CBRG CHOCChain of Custody Information AGS4 file/PROJ/LOCA/SAMP/CHOC CMPGCompaction Tests - General AGS4 file/PROJ/LOCA/SAMP/CMPG CONGConsolidation Tests - General AGS4 file/PROJ/LOCA/SAMP/CONG CTRGCyclic Triaxial Test - General AGS4 file/PROJ/LOCA/SAMP/CTRG ECTNSample Container Details AGS4 file/PROJ/LOCA/SAMP/ECTN ELRGEnvironmental Laboratory Reporting AGS4 file/PROJ/LOCA/SAMP/ELRG ERESEnvironmental Contaminant Testing AGS4 file/PROJ/LOCA/SAMP/ERES ESCGEffective Stress Consolidation Tests - General AGS4 file/PROJ/LOCA/SAMP/ESCG FRSTFrost Susceptibility Tests AGS4 file/PROJ/LOCA/SAMP/FRST GCHMGeotechnical Chemistry Testing AGS4 file/PROJ/LOCA/SAMP/GCHM GRAGParticle Size Distribution Analysis - General AGS4 file/PROJ/LOCA/SAMP/GRAG DCPTDynamic Cone Penetrometer Tests - Data AGS4 file/PROJ/LOCA/DCPG/DCPT DPRBDynamic Probe Tests - Data AGS4 file/PROJ/LOCA/DPRG/DPRB FGHIField Geohydraulic Testing - Instrumentation Details AGS4 file/PROJ/LOCA/FGHG/FGHI FGHSField Geohydraulic Testing - Test Results (per stage) AGS4 file/PROJ/LOCA/FGHG/FGHS IPRTIn Situ Permeability Tests - Data AGS4 file/PROJ/LOCA/IPRG/IPRT ISATSoakaway Tests - Data AGS4 file/PROJ/LOCA/ISAG/ISAT CBRTCalifornia Bearing Ratio Tests - Data AGS4 file/PROJ/LOCA/SAMP/CBRG/CBRT CMPTCompaction Tests - Data AGS4 file/PROJ/LOCA/SAMP/CMPG/CMPT CONSConsolidation Tests - Data AGS4 file/PROJ/LOCA/SAMP/CONG/CONS CTRCCyclic Triaxial Tests - Consolidation AGS4 file/PROJ/LOCA/SAMP/CTRG/CTRC CTRSCyclic Triaxial Test - Saturation AGS4 file/PROJ/LOCA/SAMP/CTRG/CTRS ESCTEffective Stress Consolidation Tests - Data AGS4 file/PROJ/LOCA/SAMP/ESCG/ESCT GRATParticle Size Distribution Analysis - Data AGS4 file/PROJ/LOCA/SAMP/GRAG/GRAT FGHTField Geohydraulic Testing - Data AGS4 file/PROJ/LOCA/FGHG/FGHI/FGHT CTRPCyclic Triaxial Test - Derived Parameters AGS4 file/PROJ/LOCA/SAMP/CTRG/CTRC/CTRP CTRDCyclic Triaxial Tests - Data AGS4 file/PROJ/LOCA/SAMP/CTRG/CTRC/CTRP/CTRD
Code
viewof groupSearch = Inputs.search(ags4, {
  placeholder: "Search groups..."
})
Code
viewof groupTable = Inputs.table(groupSearch, {
  format: { headings: (d) => d.map((h) => h.heading).join(", ") },
  multiple: false,
  layout: "auto"
})
Code
ags4 = FileAttachment("ags4_data_dictionary.json").json()

Headings

Headings are the specific data fields (i.e. the columns) within each group that define individual data items. Each heading represents a specific piece of information that can be recorded during geotechnical investigations, such as sample depth, moisture content, or test result values

Headings follow a standardized naming pattern, typically beginning with the group name as a prefix (e.g., “PROJ_ID” for project identifier in the PROJ group). Some headings are marked as required (*R or R), indicating that they must be populated in a valid AGS file to maintain data integrity. Headings include additional information like units of measurement, descriptions, and example values to help users understand their purpose.

Code
groupTable ? md`### ${groupTable.group_name}\n${groupTable.group_description}` : md`### Select a group in the table above to view its headings.`
Code
groupTable
  ? Inputs.table(groupTable.headings, {
      layout: "auto",
      columns: ["heading", "description", "type", "unit", "example"],
      format: {
        type: (d) => (d in types ? types[d] : d),
        status: (d) => {
          switch (d) {
            case "*":
              return "KEY";
            case "R":
              return "Required";
            default:
              return "";
          }
        }
      }
    })
  : md`In the table above, select a group on the left side to view its headings here.`
Code
types = ({
  ...Object.fromEntries(
    Array.from({ length: 5 }, (_, i) => i).map((i) => [
      `${i}DP`,
      `Value with ${i} required decimal places`
    ])
  ),
  ...Object.fromEntries(
    Array.from({ length: 4 }, (_, i) => i).map((i) => [
      `${i}SF`,
      `${i} sign. figures`
    ])
  ),
  DT: "Datetime",
  T: "Time elapsed",
  X: "Text",
  YN: "Yes/no",
  ID: "Unique Identifier",
  XN: "Text/numeric",
  PA: "Text listed in ABBR Group",
  PU: "Text listed in UNIT Group",
  U: "Value with a variable format"
})