{
 "schema": "aiblocks-page/1",
 "id": "agency-gis-spatial-data-engineer",
 "type": "agent",
 "name": "Spatial data engineer agent",
 "summary": "Plan a pipeline that turns messy map data into clean, standard files, with coordinate fixes, field rules, quality checks and a repeatable run.",
 "headline": "Spatial data engineer agent",
 "subhead": "List your map data sources and where the clean data must end up. It plans each step from reading the files to writing a standard dataset, with checks after every step. You get a pipeline plan and optional draft scripts.",
 "job": {
  "id": "build-software",
  "name": "Build and ship software"
 },
 "level": "intermediate",
 "thinking": "high",
 "tested": true,
 "updated": "2026-11-03",
 "first_published": "2026-10-26",
 "inputs": [
  {
   "type": "question",
   "required": true,
   "label": "Question",
   "what": "the problem, decision or piece of work you want help with, and what a good outcome looks like"
  },
  {
   "type": "map_data",
   "required": false,
   "label": "Map data",
   "what": "map data, such as GeoJSON, a shapefile, a GeoPackage, a raster or a point cloud, with its coordinate system and fields"
  }
 ],
 "outputs": [
  {
   "type": "plan",
   "required": true,
   "label": "Plan",
   "what": "a dated plan: what to do, in what order, with a decision rule for each step"
  }
 ],
 "you_give": [
  "Your data sources and their formats, such as shapefile, CSV with coordinates, KML or a file geodatabase",
  "Where the clean data must go and in what format",
  "Field names and types you want in the result, if you have a standard (optional)",
  "How often the data updates, and from where",
  "The tools you can use, such as Python, GDAL, FME or ArcGIS (optional)"
 ],
 "you_get": [
  "A source-by-source check of format, coordinate system, encoding and field quality",
  "A target schema with field names, types and allowed values",
  "Pipeline steps from read to write, with a check after each step",
  "A refresh and monitoring plan, if your data updates",
  "Draft scripts for the steps you ask for, marked as not run",
  "A list of known issues, assumptions and the checks left for you"
 ],
 "use_when": [
  "You have shapefiles, CAD files, spreadsheets with coordinates and a government download, and need one clean dataset.",
  "The coordinate system is missing, mixed or wrong, and you need a safe way to fix it.",
  "You do the same conversion every month and want it as a repeatable script, not hand work.",
  "You need to publish data to PostGIS, a GeoPackage or ArcGIS Online and want the checks planned first."
 ],
 "skip_when": [
  "You need one map made once. Use the GIS analyst.",
  "You need statistics on the data after it is clean. Use the Spatial data scientist.",
  "You need a live web map or API for the data. Use the Web GIS Developer agent.",
  "You need to read objects out of images with a model. Use the Geospatial machine learning planner."
 ],
 "output_sample": {
  "input": [
   "Your data sources and their formats",
   "Where the clean data must end up, and in what format",
   "Your target field names and types (optional)",
   "How often the data updates (optional)"
  ],
  "prerequisites": [
   "An AI that can read files, such as Claude, ChatGPT or Gemini",
   "A copy of your data to test on, kept apart from the originals"
  ],
  "output": [
   {
    "name": "Sources and assumptions",
    "contains": "Each source with its format, coordinate system, encoding and known problems, and how each was confirmed."
   },
   {
    "name": "Target schema",
    "contains": "The fields, types and allowed values every source must map to."
   },
   {
    "name": "Pipeline steps",
    "contains": "Each step from read to write, with the tool and the check that follows it."
   },
   {
    "name": "Quality checks",
    "contains": "Geometry and field checks, what a pass looks like and what happens on a fail."
   },
   {
    "name": "Refresh and monitoring",
    "contains": "How and when the pipeline re-runs, what it ignores and what raises an alert."
   },
   {
    "name": "Draft scripts",
    "contains": "Scripts for the steps you asked for, marked as not run."
   }
  ]
 },
 "output_shape": "SOURCES AND ASSUMPTIONS\n  <source> | <format> | <coordinate system and how it was confirmed> | <encoding> | <known problems>\n\nTARGET SCHEMA\n  <field> | <type> | <allowed values> | <how empty is written> | <mapped from>\n\nPIPELINE STEPS\n  <step number> | <read, clean, convert, check or write> | <tool> | <check after the step>\n\nQUALITY CHECKS\n  <check> | <what a pass looks like> | <what happens on a fail>\n\nREFRESH AND MONITORING\n  <schedule> | <change detection> | <alerts>\n\nDRAFT SCRIPTS (NOT RUN)\n  <file name> | <what it does>\n\nKNOWN ISSUES AND NEXT STEP\n  <issue> | <who can resolve it> | <next action>",
 "how_to_use": [
  "Download the pack and add it to your AI as a skill. If you cannot, paste SKILL.md and then references/source-agent.md into a new chat.",
  "List each source with its format and where you got it. Paste a few sample rows and any metadata files.",
  "Say where the clean data must end up. Type \"Plan the pipeline and flag every coordinate or field problem.\" Your AI asks once for anything missing.",
  "Read the source check first. Confirm the coordinate system of each file with its owner before you trust it.",
  "Run the draft scripts on a copy of your data. Your AI cannot run them for you.",
  "Compare row counts and sample records before and after each step. Keep the log with the data."
 ],
 "checks": [
  "The result addresses your actual task and cites the evidence used.",
  "Examples, role-play experience and targets are kept separate from verified results.",
  "Claims of tests, memory, tool access or completed actions match what actually happened."
 ],
 "next": [
  {
   "name": "Data pipeline builder",
   "url": "https://useaiblocks.com/skills/data-pipeline-builder",
   "why": "Build it"
  },
  {
   "name": "Database schema designer",
   "url": "https://useaiblocks.com/skills/database-schema-designer",
   "why": "Build it"
  },
  {
   "name": "RAG pipeline implementation planner",
   "url": "https://useaiblocks.com/skills/agency-engineering-rag-pipeline-engineer",
   "why": "Build it"
  }
 ],
 "source": {
  "by": "Michael Sitarzewski and Agency Agents contributors",
  "repo": "msitarzewski/agency-agents",
  "url": "https://github.com/msitarzewski/agency-agents/blob/b37b5bb33b78f2c1d6567d98e25ca818e3259219/gis/gis-spatial-data-engineer.md",
  "licence": "MIT",
  "original_name": "Spatial Data Engineer",
  "commit": "b37b5bb33b78f2c1d6567d98e25ca818e3259219"
 },
 "credits": [
  {
   "title": "Spatial Data Engineer",
   "by": "Michael Sitarzewski and Agency Agents contributors",
   "url": "https://github.com/msitarzewski/agency-agents/blob/b37b5bb33b78f2c1d6567d98e25ca818e3259219/gis/gis-spatial-data-engineer.md",
   "used": "Original agent profile, preserved in references/source-agent.md; AI Blocks adds setup and review instructions."
  }
 ],
 "files": [
  "LICENSE",
  "references/source-agent.md",
  "SETUP.md",
  "source.json"
 ],
 "links": {
  "page": "https://useaiblocks.com/agents/agency-gis-spatial-data-engineer",
  "markdown": "https://useaiblocks.com/agents/agency-gis-spatial-data-engineer.md",
  "json": "https://useaiblocks.com/agents/agency-gis-spatial-data-engineer.json",
  "instructions": "https://useaiblocks.com/skills/agency-gis-spatial-data-engineer/SKILL.md",
  "download": "https://useaiblocks.com/skills/agency-gis-spatial-data-engineer.zip",
  "api_item": "https://useaiblocks.com/api/v1/items/agency-gis-spatial-data-engineer",
  "api_document": "https://useaiblocks.com/api/v1/documents/agent/agency-gis-spatial-data-engineer",
  "mcp": "https://useaiblocks.com/mcp"
 }
}
