Skill instructions
map-data-for-a-place6.14 KB
View saved version →
---
name: map-data-for-a-place
description: Gets open map data for any place in the world as a map, a count and a GIS file, for example for QGIS. Covers administrative boundaries (countries, regions, departments, districts), building footprints, roads, railways, transit stops, addresses, points of interest such as schools, pharmacies or shops, land use, rivers and lakes, power lines and protected areas, plus hosted datasets such as land cover, official boundaries and hazard maps. Use when someone asks for GIS data, a layer, a shapefile or GeoJSON, OpenStreetMap or Overture data for an area, or simply where or how many of something there are in a place, for example all schools in Kisumu, the departments of Côte d'Ivoire or the buildings of Porto-Vecchio.
---
# Map data for a place
Explicit instructions from the user take priority over this skill.
## Prerequisite
This skill uses [TerraLab MCP](https://terra-lab.ai/mcp). The agent needs a connection
to `https://mcp.terra-lab.ai/mcp`; installing the skill alone does not connect the server.
If its tools are unavailable, provide the setup link and stop before claiming results.
Use the connected tools' current input schemas; tool prefixes vary between clients.
Call the tool rather than sending the user to a download portal, Overpass or a QGIS
plugin: the tool returns the data itself.
## Steps
1. Name the place with its country, and its region when the name is common. Pass it in
`area.place` of `extract_open_data`; the tool locates it, so `find_places` is not needed.
2. Pick the area. A town, region or country alone: pass the name, no radius. "Around" or
"near" a point: add `area.radius_m` (about 1 km for a town centre, less for a dense city).
A box the user gives: `area.bbox` `[west, south, east, north]`.
3. Map the request to one `theme` per call (table below). For several layers, one call each.
4. Narrow with `kind` when the user wants one sort of feature: one English value or up to
10 in a list, for example `"school"` or `["forest", "meadow", "grass"]`.
5. Set `formats` to what the user will open: `geojson` by default, `shapefile` for tools
that expect it, `kml` for Google Earth, `csv` for a spreadsheet. List them all in this
one call; never pass a download link to another tool, except `process_geometry`, which
takes a TerraLab download link to clip, buffer or measure that layer.
6. Check the place the tool reports before answering (see Wrong place).
| The user asks for | `theme` | Useful `kind` |
|---|---|---|
| Countries, regions, departments, districts, communes, wards | `divisions` | `country`, `region`, `county` (departments, districts), `localadmin`, `locality`, `neighborhood` |
| Border lines only | `boundaries` | |
| Buildings, footprints | `buildings` | |
| Roads, streets, paths | `roads` | `motorway`, `primary`, `residential`, `footway` |
| Railways, tram lines | `railways` | |
| Bus or train stops | `transit_stops` | |
| Bus, hiking or cycling routes | `routes` | |
| Street addresses | `addresses` | |
| Schools, pharmacies, hospitals, shops (OpenStreetMap) | `pois` | `school`, `pharmacy`, `hospital`, `supermarket` |
| Businesses and named places (Overture) | `places` | |
| Land use, forest, farmland, vineyards | `landuse` | `forest`, `farmland`, `vineyard`, `residential` |
| Rivers, streams, canals | `waterways` | |
| Lakes, ponds, reservoirs | `water_areas` | |
| Power lines, substations | `power` | |
| National parks, reserves | `protected_areas` | |
If the user asks what data exists for a project, name the three or four useful themes and
let them choose before extracting several.
## Data that is not a map layer
Land cover, official administrative boundaries from a national agency, hazard maps,
population grids, soil or climate come from the TerraLab catalogue, not from `extract_open_data`.
1. Call `find_datasets` with a few words and the `area` (a country or a place). Read `hosted`
first: only hosted datasets can be extracted; for
Preview of the first 4,000 characters. Read full instructions →
places-files-and-coordinates4.62 KB
View saved version →
---
name: places-files-and-coordinates
description: Puts addresses, coordinates or a GIS file on a map and converts them. Covers geocoding one address or a list of up to 100 (pasted or CSV) and the address at a point, opening and checking GeoJSON, KML, KMZ, GPX, zipped Shapefile, CSV or WKT files, converting between these formats, converting coordinates between decimal degrees, DMS, UTM, MGRS, Lambert 93 and EPSG codes, and choosing the right CRS for a GIS project, for example in QGIS. Use when someone wants a list of addresses or clients on a map, the coordinates of an address, a KML turned into a Shapefile, a GPX opened, coordinates converted, or data that lands in the wrong place.
---
# Places, files and coordinates
Explicit instructions from the user take priority over this skill.
## Prerequisite
This skill uses [TerraLab MCP](https://terra-lab.ai/mcp). The agent needs a connection
to `https://mcp.terra-lab.ai/mcp`; installing the skill alone does not connect the server.
If its tools are unavailable, provide the setup link and stop before claiming results.
Use the connected tools' current input schemas; tool prefixes vary between clients.
## Pick the tool
| The user has | Tool |
|---|---|
| One address or place name, or a point to name | `find_places` with `query`, or `latitude` and `longitude` |
| A list of addresses (up to 100), pasted or CSV with an address column | `find_places` with `addresses` or `text`, and a `title` |
| A file, a link to a file, pasted GeoJSON, KML, GPX or WKT | `open_gis_file` with `file`, `url` or `text` (up to 50 MB) |
| Points with coordinates already known, to map or export | `open_gis_file` with `points` |
| Coordinates to convert (up to 1,000 lines) | `convert_coordinates` with `text`, one per line |
Convert with the tool rather than by hand or from memory, so the result comes with a map
and files. Never pass a TerraLab download link back to a tool: list every output format in
one call.
## Addresses
1. Add the town and country to each address when the user gave them once for the whole list.
2. Report how many addresses were found and list the ones not found or matched loosely,
so the user can fix them. Never place a missing address by guess.
3. The list comes back as a CSV with latitude and longitude added, plus KML and GeoJSON.
In QGIS the CSV opens as a delimited text layer.
## Files
1. Set `convert_to` when the user wants another format: `geojson`, `kml`, `kmz`, `gpx`,
`shapefile` or `csv`.
2. Report format, coordinate system, extent, feature count, geometry types, fields and
any warning.
## Coordinates
1. Each line's format is detected. For a national grid the numbers cannot reveal, set
`source_epsg`: EPSG:28992 (Dutch RD), EPSG:2056 (Swiss LV95), EPSG:27700 (British
National Grid), EPSG:2180 (Poland 1992), EPSG:31370 (Belgian Lambert 72), or the UTM
zone given apart from the numbers, for example EPSG:32632.
2. Set `target_epsg` for a specific output system.
## Data in the wrong place
1. Points in the sea or on another continent have two usual causes: latitude and longitude
swapped, or projected values read as degrees.
2. The tool reads swapped values the other way round when it can tell, and warns. Otherwise
ask the user to confirm the column order.
3. A zipped Shapefile without a .prj is read as WGS 84 longitude and latitude, with a
warning. If the extent looks wrong, ask which system the data uses, or try the likely
national grid with `source_epsg` and show the result for the user to confirm.
4. Never guess an EPSG code silently. Say which one you assumed.
## Choosing a CRS
1. Keep WGS 84 (EPSG:4326) for viewing and exchange.
2. For distances or areas, use a local projected CRS. `convert_coordinates` returns
`recommended_crs` for the first point: in France Lambert 93 (EPSG:2154), elsewhere the
national grid or the UTM zone of the area.
3. In QGIS, set it as the project CRS, or use Vector > Data Management Tools > Reproject Layer.
Preview of the first 4,000 characters. Read full instructions →
site-study6 KB
View saved version →
---
name: site-study
description: Builds a first look at a site or plot anywhere in the world before a project such as a house, an extension, a solar farm, a shop or a purchase. Combines the terrain (altitude and slope), natural risks such as flood zones, what lies around it (buildings, roads, rivers and lakes, land use, protected areas, power lines, transit) and, in France, the cadastral parcel and the local urban plan (PLU) zone. Use when someone asks what is on or around an address or a plot, whether a site is flat, near water, in a flood zone or in a protected area, or asks about a parcel, its section and number, cadastre, zoning or PLU in France.
---
# Site study
Explicit instructions from the user take priority over this skill.
## Prerequisite
This skill uses [TerraLab MCP](https://terra-lab.ai/mcp). The agent needs a connection
to `https://mcp.terra-lab.ai/mcp`; installing the skill alone does not connect the server.
If its tools are unavailable, provide the setup link and stop before claiming results.
Use the connected tools' current input schemas; tool prefixes vary between clients.
## Steps
1. Get the site: a street address with its town and country, a place name, or latitude
and longitude. If only a vague area is given, ask for an address or a point.
2. Ask the purpose if it is unclear, since it decides the checks. Without an answer, run
the default checks: terrain, water, natural risks, protected areas, land use and roads.
3. Run the checks below that fit the purpose. Each tool locates the place itself; call
`find_places` only when the user wants the coordinates or a map of the address.
4. In France, add the parcel and zoning section.
5. Summarise in a short table, then the links and limits.
## Checks
| Check | Call |
|---|---|
| Altitude of the site | `get_elevation`, `mode` `"point"` |
| How steep the site is | `get_elevation`, `mode` `"area"`, `area` with `radius_m` 200 to 500, `interval_m` 2 to 5 |
| Rivers, streams, lakes nearby | `extract_open_data`, `theme` `waterways`, then `water_areas`, radius 500 m to 1 km |
| Protected areas (parks, reserves) | `extract_open_data`, `theme` `protected_areas`, radius 1 to 2 km |
| Land use around (forest, farmland, housing) | `extract_open_data`, `theme` `landuse`, radius 300 to 500 m |
| Access roads | `extract_open_data`, `theme` `roads`, radius 300 m |
| Neighbouring buildings | `extract_open_data`, `theme` `buildings`, radius 100 to 300 m |
| Power lines, substations (solar, wind) | `extract_open_data`, `theme` `power`, radius 1 to 3 km |
| Transit stops, schools, shops (housing, retail) | `extract_open_data`, `theme` `transit_stops` or `pois` with `kind` |
| What lies within a walk or a drive (housing, retail) | `get_travel_area`, `starts` the site, `minutes` such as `[5, 10, 15]`, `mode` |
| Straight-line distance to a place (station, school, coast) | `measure`, `method` `"distance"` with the site and the place |
| A recent picture of the site | `get_satellite_image`, `area` with `radius_m` 200 to 1,000 (IGN aerial photo in France, Sentinel-2 elsewhere) |
| Height of neighbouring buildings (France) | `french_building_heights`, `area` with `radius_m` 100 to 300 |
| Natural risks: flood zones, clay shrink-swell, seismic zone, cavities, commune risks (France); river flood depth elsewhere | `get_natural_risks` with the same `address`, or `latitude` and `longitude` |
| How many people live within a walk or a radius (housing, retail) | `estimate_population`, `travel` with the site, `minutes` and `mode`, or `area` with `radius_m` |
Use the same site and radius in every call so the results line up. Report distances only
when the tool returns them; otherwise say "within the radius".
## France: parcel and zoning
1. Call `french_parcel` with `address`, or `latitude` and `longitude`, rather than citing a
real-estate or cadastre website: the tool reads the official cadastre and PLU.
2. If the address was matched in another commune, tell the user and ask th
Preview of the first 4,000 characters. Read full instructions →
terrain-and-elevation4.66 KB
View saved version →
---
name: terrain-and-elevation
description: Gives terrain information anywhere in the world from the Copernicus 30 m elevation model. Covers the altitude of places, an elevation profile between points or along a route with total ascent and descent, a DEM clipped to an area as a GeoTIFF with a hillshade and a slope map, contour lines (topographic lines, courbes de niveau) as a GIS file, and how steep or flat an area is. Use when someone asks for a DEM, SRTM, a relief or terrain model, elevation, altitude, height above sea level, contours, slope, a hiking or cycling profile, or the topography of a place, for example "I need the DEM of Milan" or "contour lines around Chamonix every 10 m".
---
# Terrain and elevation
Explicit instructions from the user take priority over this skill.
## Prerequisite
This skill uses [TerraLab MCP](https://terra-lab.ai/mcp). The agent needs a connection
to `https://mcp.terra-lab.ai/mcp`; installing the skill alone does not connect the server.
If its tools are unavailable, provide the setup link and stop before claiming results.
Use the connected tools' current input schemas; tool prefixes vary between clients.
Call `get_elevation` for any request with a place, even when the user says "DEM" or
"SRTM", and for a profile between two named places: answer with measured values from the
tool, not with figures from memory or the web, before pointing to any other source.
## Pick the mode
| The user wants | `mode` | Input |
|---|---|---|
| The altitude of one or more places | `point` | `points`: up to 100 names or coordinates |
| A profile between places or along a route | `path` | `points`: 2 or more, in order; `samples` up to 500 |
| A DEM, hillshade or relief of an area, contour lines, slope, "how steep" | `area` | `area`: a place (alone for a city or region, or with `radius_m`), or a `bbox`; `interval_m` |
Give places as the user names them, with the country; the tool locates them.
## Area requests (DEM, relief, contours, slope)
1. Any area works, from a plot to a region or a small country. For a city, a place name alone
uses its extent, or give `radius_m`. The tool returns three GeoTIFF downloads for every
area: the DEM (elevation in metres), a hillshade and a slope map in degrees, in
EPSG:4326 with the licence inside. The grid is about 30 m for small areas and coarser for
large ones (up to about 4 million cells in all); the answer states the cell size.
2. Areas up to about 10 x 10 km also get contour lines (Shapefile, GeoJSON, KML) and
slope statistics. For a larger area the answer has the rasters and the minimum, maximum
and mean elevation only: offer a smaller area, such as a valley or a town, for contours.
3. Choose `interval_m` by relief: 5 to 10 m for flat land, 20 m by default, 50 to 100 m
for mountains.
4. A large country or a continent is beyond the limit (the tool answers `area_too_large`):
say so and offer a region, a city or a valley.
5. Report the minimum and maximum elevation, the cell size and, when returned, the slope
statistics.
6. Tell the user the .tif files open in QGIS or any GIS by dragging them onto the map; no
data cells (sea) are marked -32768.
## Route profiles
1. For a list of places, pass them in order in `points`.
2. For a GPX or KML track, read it with `open_gis_file` first. If the track has more points
than `points` accepts, keep the start, the end and evenly spaced points between them,
and say that the profile is sampled.
3. Report the length, minimum and maximum elevation, total ascent and descent.
## Limits to respect
1. Copernicus DEM is a 30 m surface model: it includes buildings and trees. In a city or a
forest, the value is the top of the roof or canopy, not the ground. Say so when it matters.
2. Never invent an elevation for a point the tool did not return.
3. Elevation is approximate and not for navigation, flight planning, surveying or flood design.
## What the answer must contain
- The values asked for, in me
Preview of the first 4,000 characters. Read full instructions →