# CifpRestrictiveAirspace

Defines the boundaries and attributes of restrictive airspace areas (MOAs, Restricted, Prohibited, Warning, Alert, and Military Operations areas) as defined in ARINC 424 Section UR records

**Source:** CIFP table `CIFP_RESTRICTIVE_AIRSPACE` · version `239462ba9c35` · effective 2026-04-16

> Each airspace boundary is defined by a series of sequential records forming a closed polygon. The first sequence record (typically CONTINUATION_RECORD_NO=1) contains the airspace limits (LOWER_LIMIT/UPPER_LIMIT). Subsequent sequence records define boundary vertices. MULTIPLE_CODE is used when the same designation has multiple non-contiguous or altitude-separated components.

## Example query

```graphql
# Introspect the CifpRestrictiveAirspace type in GraphiQL at https://api.nav.sortie.co/graphql
# Example shape (pair with a compatible root query field):
{
  # ...rootQuery... {
    recordType
    customerAreaCode
    sectionCode
    icaoCode
  # }
}
```

Run at https://api.nav.sortie.co/graphql (GraphiQL available in-browser).

## Fields

| Field | Type | Description | Units | Enum |
|---|---|---|---|---|
| `recordType` | `RecordType` | Indicates whether the record is a standard record or a header/tailored record |  | `S`=Standard record |
| `customerAreaCode` | `CifpControlledAirspaceCustomerAreaCode` | Geographic region of the world for which the record applies, used to distinguish data sets by region |  | `CAN`=Canada and Alaska region; `LAM`=Latin America and Caribbean region; `PAC`=Pacific region; `USA`=Contiguous United States region |
| `sectionCode` | `CifpRestrictiveAirspaceSectionCode` | ARINC 424 section and subsection code identifying the record type; UR denotes Restrictive Airspace |  | `UR`=Restrictive Airspace record |
| `icaoCode` | `CifpRestrictiveAirspaceIcaoCode` | ICAO region code indicating the geographic area of the ICAO authority responsible for the airspace |  | `K1`, `K2`, `K3`, … (11 values) |
| `restrictiveType` | `RestrictiveType` | Classification code indicating the type of restrictive airspace |  | `A`=Alert Area; `M`=Military Operations Area (MOA); `P`=Prohibited Area; `R`=Restricted Area; `U`=Warning Area; `W`=Warning Area (international) |
| `restrictiveAirspaceDesignation` | `String` | The official designation or name identifier of the restrictive airspace area (e.g., R-2508, BIRCH) |  |  |
| `multipleCode` | `CifpRestrictiveAirspaceMultipleCode` | Alphabetic suffix used to differentiate between multiple non-contiguous parts or altitude-separated components of the same named restrictive airspace designation |  | `A`, `B`, `C`, … (11 values) |
| `sequenceNumber` | `String` | Sequential number ordering the boundary-defining records for a given airspace; each increment represents the next vertex or arc segment of the boundary polygon |  |  |
| `continuationRecordNo` | `ContinuationRecordNo` | Indicates whether this is a primary record or a continuation record providing supplemental data for the same sequence point |  | `0`=Primary record (no continuation); `1`=Primary record with continuation records following; `2`=Continuation record |
| `level` | `WaypointUsage` | Indicates the altitude stratum in which the restrictive airspace exists |  | `B`=Both high and low altitude structure; `H`=High altitude structure (above FL 180); `L`=Low altitude structure (at or below FL 180) |
| `timeCode` | `String` | Code indicating the time of operation applicability of the restrictive airspace (e.g., continuous, by NOTAM, part-time); null if unspecified |  |  |
| `notam` | `String` | Indicates whether the activation of this airspace is controlled or notified via NOTAM; null if not applicable |  |  |
| `boundaryVia` | `BoundaryVia` | Defines the method by which the boundary is drawn from the previous point to the current point, and whether the current point is the final (end) point of the boundary |  | `CE`, `G`, `GE`, … (8 values) |
| `latitude` | `String` | Latitude of the boundary vertex or point defining the current sequence position of the restrictive airspace boundary; encoded as hemisphere+DDMMSSSS (e.g., N64311700 = N 64°31'17.00") | degrees, minutes, seconds (HDMMSSHH format) |  |
| `longitude` | `String` | Longitude of the boundary vertex or point defining the current sequence position of the restrictive airspace boundary; encoded as hemisphere+DDDMMSSSS (e.g., W146093100 = W 146°09'31.00") | degrees, minutes, seconds (HDDDMMSSHH format) |  |
| `arcOriginLatitude` | `String` | Latitude of the center point of the arc when BOUNDARY_VIA indicates an arc (R, L, or CE) segment; null for great circle or rhumb line segments | degrees, minutes, seconds (HDMMSSHH format) |  |
| `arcOriginLongitude` | `String` | Longitude of the center point of the arc when BOUNDARY_VIA indicates an arc (R, L, or CE) segment; null for great circle or rhumb line segments | degrees, minutes, seconds (HDDDMMSSHH format) |  |
| `arcDistance` | `String` | Radius distance from the arc origin to the boundary arc when BOUNDARY_VIA indicates an arc or circle segment; stored as a 4-digit integer in tenths of nautical miles (e.g., 0100 = 10.0 NM) | tenths of nautical miles |  |
| `arcBearing` | `String` | True bearing from the arc origin point to the start of the arc boundary segment; used in conjunction with ARC_ORIGIN and ARC_DISTANCE to define arc boundaries | degrees true (tenths of degrees) |  |
| `lowerLimit` | `CifpRestrictiveAirspaceLowerLimit` | Lower altitude limit of the restrictive airspace for the first sequence record. Numeric values are in hundreds of feet MSL (e.g., 0500 = 500 ft MSL); L-prefixed values are Flight Levels (e.g., L180 = FL180); ND indicates the surface (ground level); only populated on the first sequence record | feet MSL (or Flight Level for L-prefixed values) | `0000`, `ND`, `L180`, … (64 values) |
| `unitIndicator` | `UnitIndicator` | Unit of measurement for the LOWER_LIMIT altitude value |  | `A`=Altitude in feet MSL; `M`=Flight Level (hundreds of feet, i.e., FL) |
| `upperLimit` | `String` | Upper altitude limit of the restrictive airspace; numeric values represent altitude in feet or flight level depending on UNIT_INDICATOR_2; only populated on the first sequence record | feet MSL or Flight Level |  |
| `unitIndicator2` | `UnitIndicator` | Unit of measurement for the UPPER_LIMIT altitude value |  | `A`=Altitude in feet MSL; `M`=Flight Level (hundreds of feet, i.e., FL) |
| `restrictiveAirspaceName` | `String` | Full plain-language name of the restrictive airspace area (e.g., BIRCH MOA, RESTRICTED AREA R-2508); only populated on the first sequence record |  |  |
| `fileRecordNo` | `String` | Sequential record number assigned to this record within the source CIFP data file; used for traceability and ordering within the raw data file |  |  |
| `cycleDate` | `String` | AIRAC cycle date when this record was last created or modified, in YYNN format where YY is the 2-digit year and NN is the AIRAC cycle number within that year (e.g., 1703 = 3rd cycle of 2017) |  |  |

## Enum values

### `icaoCode` (`CifpRestrictiveAirspaceIcaoCode`)

| Code | Description |
|---|---|
| `K1` | Contiguous United States (western region) |
| `K2` | Contiguous United States (north-central region) |
| `K3` | Contiguous United States (east-central region) |
| `K4` | Contiguous United States (southeastern region) |
| `K5` | Contiguous United States (south-central region) |
| `K6` | Contiguous United States (northeastern region) |
| `K7` | Contiguous United States (north-central region) |
| `PA` | Alaska |
| `PG` | Guam and Mariana Islands |
| `PH` | Hawaii |
| `TJ` | Puerto Rico and U.S. Virgin Islands |

### `multipleCode` (`CifpRestrictiveAirspaceMultipleCode`)

| Code | Description |
|---|---|
| `A` | First component of a multi-part airspace |
| `B` | Second component of a multi-part airspace |
| `C` | Third component of a multi-part airspace |
| `D` | Fourth component of a multi-part airspace |
| `E` | Fifth component of a multi-part airspace |
| `F` | Sixth component of a multi-part airspace |
| `G` | Seventh component of a multi-part airspace |
| `H` | Eighth component of a multi-part airspace |
| `I` | Ninth component of a multi-part airspace |
| `J` | Tenth component of a multi-part airspace |
| `K` | Eleventh component of a multi-part airspace |

### `boundaryVia` (`BoundaryVia`)

| Code | Description |
|---|---|
| `CE` | Circle (complete circle centered at arc origin), boundary ends here |
| `G` | Great circle line segment to this point |
| `GE` | Great circle line segment to this point, boundary ends here |
| `H` | Rhumb line segment to this point |
| `L` | Counter-clockwise (left) arc to this point |
| `LE` | Counter-clockwise (left) arc to this point, boundary ends here |
| `R` | Clockwise (right) arc to this point |
| `RE` | Clockwise (right) arc to this point, boundary ends here |

### `lowerLimit` (`CifpRestrictiveAirspaceLowerLimit`)

| Code | Description |
|---|---|
| `0000` | Surface (0 ft MSL) |
| `ND` | Not defined / surface |
| `L180` | FL180 (18,000 ft MSL) |
| `L200` | FL200 (20,000 ft MSL) |
| `L220` | FL220 (22,000 ft MSL) |
| `L230` | FL230 (23,000 ft MSL) |
| `L240` | FL240 (24,000 ft MSL) |
| `L250` | FL250 (25,000 ft MSL) |
| `L260` | FL260 (26,000 ft MSL) |
| `L280` | FL280 (28,000 ft MSL) |
| `L300` | FL300 (30,000 ft MSL) |
| `L310` | FL310 (31,000 ft MSL) |
| `L350` | FL350 (35,000 ft MSL) |
| `L430` | FL430 (43,000 ft MSL) |
| `0001` | 0001 |
| `0100` | 0100 |
| `0150` | 0150 |
| `0200` | 0200 |
| `0300` | 0300 |
| `0500` | 0500 |
| `0501` | 0501 |
| `0700` | 0700 |
| `1000` | 1000 |
| `1001` | 1001 |
| `1200` | 1200 |
| `1201` | 1201 |
| `1500` | 1500 |
| `1501` | 1501 |
| `1600` | 1600 |
| `2000` | 2000 |
| `2001` | 2001 |
| `2100` | 2100 |
| `2200` | 2200 |
| `2500` | 2500 |
| `2501` | 2501 |
| `3000` | 3000 |
| `3001` | 3001 |
| `3200` | 3200 |
| `3201` | 3201 |
| `3500` | 3500 |
| `3501` | 3501 |
| `3600` | 3600 |
| `4000` | 4000 |
| `4500` | 4500 |
| `4501` | 4501 |
| `4801` | 4801 |
| `4900` | 4900 |
| `5000` | 5000 |
| `5001` | 5001 |
| `5500` | 5500 |
| `6000` | 6000 |
| `6001` | 6001 |
| `6200` | 6200 |
| `7000` | 7000 |
| `7001` | 7001 |
| `7500` | 7500 |
| `7501` | 7501 |
| `8000` | 8000 |
| `8500` | 8500 |
| `8501` | 8501 |
| `8801` | 8801 |
| `9000` | 9000 |
| `9001` | 9001 |
| `9500` | 9500 |

## Column provenance

Every field maps 1:1 to a column in the `CIFP_RESTRICTIVE_AIRSPACE` table of `nasr.db`. Original FAA column names:

| GraphQL field | SQLite column |
|---|---|
| `recordType` | `RECORD_TYPE` |
| `customerAreaCode` | `CUSTOMER_AREA_CODE` |
| `sectionCode` | `SECTION_CODE` |
| `icaoCode` | `ICAO_CODE` |
| `restrictiveType` | `RESTRICTIVE_TYPE` |
| `restrictiveAirspaceDesignation` | `RESTRICTIVE_AIRSPACE_DESIGNATION` |
| `multipleCode` | `MULTIPLE_CODE` |
| `sequenceNumber` | `SEQUENCE_NUMBER` |
| `continuationRecordNo` | `CONTINUATION_RECORD_NO` |
| `level` | `LEVEL` |
| `timeCode` | `TIME_CODE` |
| `notam` | `NOTAM` |
| `boundaryVia` | `BOUNDARY_VIA` |
| `latitude` | `LATITUDE` |
| `longitude` | `LONGITUDE` |
| `arcOriginLatitude` | `ARC_ORIGIN_LATITUDE` |
| `arcOriginLongitude` | `ARC_ORIGIN_LONGITUDE` |
| `arcDistance` | `ARC_DISTANCE` |
| `arcBearing` | `ARC_BEARING` |
| `lowerLimit` | `LOWER_LIMIT` |
| `unitIndicator` | `UNIT_INDICATOR` |
| `upperLimit` | `UPPER_LIMIT` |
| `unitIndicator2` | `UNIT_INDICATOR_2` |
| `restrictiveAirspaceName` | `RESTRICTIVE_AIRSPACE_NAME` |
| `fileRecordNo` | `FILE_RECORD_NO` |
| `cycleDate` | `CYCLE_DATE` |
