The GeoEnrichment service

The GeoEnrichment service provides the ability to get facts about a location or area. Using GeoEnrichment, you can get information about the people, places, and businesses in a specific area or within a certain distance or drive time from a location. More specifically, by submitting a point or polygon to the GeoEnrichment service, you can retrieve the demographics and other relevant characteristics associated with the surrounding area. You can also use the GeoEnrichment service to obtain additional geographic context (for example, the ZIP Code of a location) and geographic boundaries (for example, the geometry for a drive-time service area).

This service enables you to answer questions about locations that you can't answer with maps alone. For example: What kind of people live here? What do people like to do in this area? What are their habits and lifestyles? What kind of businesses are in this area?

Site analysis is a popular application of this type of data enrichment. For example, the GeoEnrichment service can be leveraged to study the population that would be affected by the development of a new community center within their neighborhood. With the service, the proposed site can be submitted, and the demographics and other relevant characteristics associated with the area around the site will be returned.

Study areas

The GeoEnrichment service uses the concept of a study area to define the location of the point or area that you want to enrich with additional information. If one or more points is input as a study area, the service will create a one-mile ring buffer around the points or points to collect and append enrichment data. You can optionally change the ring buffer size or create drive-time service areas around a point.

The service is capable of enriching study areas in the following ways:

  • Input XY locations—One or more input points (latitude and longitude) can be provided to the service to set the study areas that you want to enrich with additional information. You can create a buffer ring or drive-time service area around the points to aggregate data for the study areas.
  • Input polygons—You can enrich a single area defined by a polygon feature.
  • Named statistical areas—You can enrich areas defined by a named administrative boundary area and include the associated geometry in the response. Rather than specifying the polygon feature, identifiers (IDs) are used to specify named statistical areas such as states, provinces, counties, postal codes, and the like. Named administrative boundary areas can be looked up with the StandardGeographyQuery administrative boundary lookup service.
  • Network service areas—You can create drive time service areas around points as well as other advanced service areas such as walking and trucking.
  • Street address locations—You can also enrich input addresses. Enter an address, point of interest, place name, or other supported location as a single string ("380 New York St, Redlands, CA"), and the service returns a coordinate pair representing the address ("-117.1956, 34.0576"). Once a matched address is returned, you can create a buffer ring or drive-time service area around the point to aggregate data for the study area.

Data collections

The GeoEnrichment service uses the concept of a data collection to define the data attributes returned by the enrichment service. More specifically, a data collection is a preassembled list of attributes that will be used to enrich the input features. Collection attributes can describe various types of information, such as demographic characteristics and geographic context, of the locations or areas submitted as input features.

Service properties

Discover what capabilities are available in service properties as well as the service limits. For example, these service properties would let you know what services endpoints and child resources are available. It will also allow the Business Analyst Web app or Business Analyst Desktop to discover if custom reports, stored as portal items, are available in the service.

Request example:

Service properties are exposed through the main GeoEnrichment endpoint.

http://geoenrich.arcgis.com/arcgis/rest/services/World/geoenrichmentserver/GeoEnrichment/?f=pjson

JSON response example
{


"Enrich": {
  "Parameters": {
    "Required": {
      "StudyAreas": {
        "SampleValue": "[{\"geometry\":{\"x\": -122.435, \"y\": 37.785}},{\"geometry\":{\"x\": -122.433, \"y\": 37.734}},{\"geometry\":{\"x\": -122.746, \"y\": 49.986}}]"
      }
    },
    "Optional": {
      "DataCollections": {
        "SampleValue": "[\"KeyGlobalFacts\"]"
      },
      "AnalysisVariables": {
        "SampleValue": "[\"TOTPOP_CY\",\"HHPOP_CY\"]"
      },
      "StudyAreasOptions": {
        "SampleValue": "{\"areaType\": \"RingBuffer\", \"bufferUnits\": \"esriMiles\", \"bufferRadii\": [1,2,3]}"
      },
      "UseData": {
        "SampleValue": "{\"sourceCountry\":\"US\",\"dataset\":\"USA_ESRI_2016\"}"
      },
      "IntersectingGeographies": {
        "SampleValue": "[{\"geographyType\": \"standard\",\"sourceCountry\": \"US\",\"geographyLayer\": \"US.ZIP5\",\"name\": \"USAZIPcodes\",\"outfields\": [\"ID\", \"NAME\"],\"intersectionInfo\": {\"geometryType\": \"esriGeometryPoint\",\"spatialRel\": \"esriSpatialRelIntersects\"}}]"
      },
      "ReturnGeometry": {
        "SampleValue": "true"
      },
      "InSR": {
        "SampleValue": "{\"wkid\":4326}"
      },
      "OutSR": {
        "SampleValue": "{\"wkid\":4326}"
      }
    }
  }
}
,


"CreateReport": {
  "Parameters": {
    "Required": {
      "StudyAreas": {
        "SampleValue": "[{\"geometry\":{\"x\": -122.435, \"y\": 37.785}},{\"geometry\":{\"x\": -122.433, \"y\": 37.734}},{\"geometry\":{\"x\": -122.746, \"y\": 49.986}}]"
      }
    },
    "Optional": {
      "Report": {
        "SampleValue": "Demographic and Income Profile"
      },
      "Format": {
        "SampleValue": "PDF"
      },
      "ReportFields": {
        "SampleValue": "{\"title\": \"My Report\",\"subtitle\": \"Produced by Foo company\",\"logo\": http:\/\/fooCompany.com\/shared\/logo.png}"
      },
      "StudyAreasOptions": {
        "SampleValue": "{\"areaType\": \"RingBuffer\", \"bufferUnits\": \"esriMiles\", \"bufferRadii\": [1,2,3]}"
      },
      "UseData": {
        "SampleValue": "{\"sourceCountry\":\"US\",\"dataset\":\"USA_ESRI_2016\"}"
      },
      "InSR": {
        "SampleValue": "{\"wkid\":4326}"
      },
      "ReturnType": {
        "SampleValue": "{\"user\": \"User\",\"token\": \"abcde...\",\"folder\": \"ThisTestFolderCanBeCleared\",\"url\": \"devext.arcgis.com\",\"title\": \"SanityTestReport\",\"item_properties\": {\"typeKeywords\": \"kw1, kw2, kw3\",\"tags\": \"tag1, tag2\",\"description\": \"custom descr\",\"snippet\": \"custom snippet\",\"properties\": {\"categories\": \"Custom\",\"type\": \"esriReportTemplateStandard\",\"countries\": \"US\",\"hierarchy\": \"census\",\"author\": \"sanitytests\",\"formats\": \"pdf\",\"dataVintage\": \"2016\",\"dataVintageDescription\": \"\",\"keywords\": \"Sanity tests, PDF\",\"coverage\": \"US\"}}}"
      }
    }
  }
}
,
"serviceLimits": {
  "paramName" : "DiscoveryLimits",
  "dataType" : "DiscoveryLimitsInfo",
  "value" : [ {
    "paramName" : "maximumAttributeDescriptionLength",
    "paramDescription" : "Maximum length of attribute’s description string.",
    "dataType" : "numeric",
    "value" : 1000
  }, {
    "paramName" : "maximumOutFieldsNumber",
    "paramDescription" : "Maximum number of ‘outFields’ set in intersectingGeographies parameter.",
    "dataType" : "numeric",
    "value" : 256
  }, {
    "paramName" : "MaximumRingSizeTime",
    "paramDescription" : "Maximum size of rings (time units) for drive time rings builders.",
    "dataType" : "esriDriveTimeUnitsMinutes",
    "value" : 300
  }, {
    "paramName" : "maximumRingsNumber",
    "paramDescription" : "Maximum number of rings for study area location points for drive time/simple rings builder.",
    "dataType" : "numeric",
    "value" : 10
  }, {
    "paramName" : "maximumDataCollections",
    "paramDescription" : "Maximum number of data collections to return on request.",
    "dataType" : "numeric",
    "value" : 20
  }, {
    "paramName" : "maximumStdGeographyIDsNumber",
    "paramDescription" : "Maximum number of standard geography IDs to return.",
    "dataType" : "numeric",
    "value" : 1000
  }, {
    "paramName" : "maximumSelectBusinessesResponseRecords",
    "paramDescription" : "Maximum number of features returned by select busenesses search.",
    "dataType" : "numeric",
    "value" : 5000
  }, {
    "paramName" : "optimalBatchStudyAreasNumber",
    "paramDescription" : "Optimal number of study areas to request in each batch enrich request.",
    "dataType" : "numeric",
    "value" : 50
  }, {
    "paramName" : "maximumDetailedMethodStudyAreasSize",
    "paramDescription" : "Maximum size of rings for drive time/simple rings builders with detailed data calculation method.",
    "dataType" : "esriMiles",
    "value" : 300
  }, {
    "paramName" : "MaximumRingSize",
    "paramDescription" : "Maximum size of rings for simple rings builders.",
    "dataType" : "esriMiles",
    "value" : 1000
  }, {
    "paramName" : "maximumDriveDistance",
    "paramDescription" : "Maximum size of rings for drive time rings builders.",
    "dataType" : "esriMiles",
    "value" : 300
  }, {
    "paramName" : "maximumDriveTimeStudyAreasNumber",
    "paramDescription" : "Maximum number of drive time study areas in one enrich request.",
    "dataType" : "numeric",
    "value" : 100
  }, {
    "paramName" : "maximumStudyAreasNumber",
    "paramDescription" : "Maximum number of study areas in one enrich request.",
    "dataType" : "numeric",
    "value" : 100
  }, {
    "paramName" : "maximumNumberOfStudyAreasWithDetailedMethod",
    "paramDescription" : "Maximum number of study areas in one enrich request with detailed data calculation method.",
    "dataType" : "numeric",
    "value" : 3
  }, {
    "paramName" : "maxRecordCount",
    "paramDescription" : "Maximum number of features to return.",
    "dataType" : "numeric",
    "value" : 1000
  } ]
},


"capabilities": [
  "ReportsPortalItems",
  "ReportsMetadataDiscovery",
  "StatisticalDataCollections"
 ]
,
"supportedOperations": [
  "Enrich",
  "CreateReport",
  "Reports",
  "Countries",
  "DataCollections",
  "StandardGeographyLevels"
 ]
}