G

GeoTee — Training Guide

From a shapefile to a published web app, in eleven short modules with hands-on exercises.

Open GeoTee →தமிழ்

▶Quick start — your first map in 10 minutes

If you only read one module, read this one.

  1. Open geotee.gtdigital.tech and sign in with the username and password your administrator gave you.
  2. Folder connection (like ArcCatalog): at the bottom of the Catalog pane, Folder connection › + folder lets you pick a whole folder of shapefiles from your computer (or drag it onto the Catalog pane); the files are kept on the server and listed as a tree. Click Add next to a .shp / .gpkg / .tif to import it; imported files show in library, and right-click gives Re-import when the file is updated. You can also copy files there by SFTP (/var/www/geo-data/inbox/).
  3. On the Map tab click Add Data, drop a zipped shapefile (or a GeoJSON / KML / CSV with coordinates) and press upload. The layer appears in the Catalog on the right.
  4. Double-click the layer in the Catalog. It draws on the map and appears in Contents on the left.
  5. With the layer selected, open Feature Layer › Appearance › Symbology and pick Graduated Colors or Unique Values.
  6. Press Ctrl+S to save the map with a name.
  7. Insert › New App from Map creates an app with a header, legend, layer list, filter and table already wired to your data.
  8. Design › Share → choose Anyone with the link → copy the link. Done.
Try itDo the seven steps above with any dataset you have. If you have none, use Add Data › Admin boundaries and import Sri Lanka ADM2 — it gives you the 25 districts in one click.

1Signing in and finding your way around

15 minutes · everyone

Sign-in screen
The sign-in screen. Ask your administrator for an account; there is no self-registration.

The workspace

Workspace with ribbon, Contents, map and Catalog
The workspace: ribbon on top, Contents on the left, map in the middle, Catalog on the right, status bar at the bottom.
AreaWhat it is for
Ribbon (Project · Map · Insert · Analysis · View · Share)Every command lives here, grouped by task. Coloured contextual tabs appear only when they apply: Feature Layer (teal) when a layer is selected, App Builder (amber) when you are designing an app.
Contents paneThe layers in the current map, top to bottom in drawing order. Tick boxes turn layers on/off. The legend classes show under each layer. Right-click a layer for a menu.
Catalog paneYour library: Apps, saved Maps, and uploaded Layers. Double-click to open or add. The tabs at the bottom switch this pane to Symbology, Labeling or Properties.
Status barMap scale (you can type a scale, e.g. 1:50000), cursor coordinates, coordinate system, selection count.
RolesA viewer can open maps and apps. An editor can also upload, analyse, edit and build. An admin manages users. Buttons you are not allowed to use are simply hidden.
Exercise 1Sign in, hide and re-show the Contents pane from View › Contents, then type 1:100000 into the scale box and press Enter.

Item page, domains, attachments, related records

Item page
Right-click a layer in the Catalog › Properties opens its Item page: description, source, licence, date, tags, contact and the key field that identifies features (used by attachments and relates).
Fields and domains
Fields · domains tab: give fields an alias, a coded pick list (one code = label per line, or Fill from existing values) or a numeric range, and mark them required / unique.
Edit form with domains
The edit form then shows pick lists and ranges and refuses invalid values. Related tables (1 : many by a matching field) list their records here and in pop-ups.
Attachments in a pop-up
Attachments: every pop-up has an Attachments row — + Add photos, PDFs or documents to that feature; thumbnails open the file. Published apps show them too.
Recycle bin
Recycle Bin at the bottom of the Catalog: deleted layers, maps, apps and forms stay 30 days — right-click to restore or (admin) delete permanently.
Packages and more sourcesShare › Export Package writes one .geotee.zip with the map, its layers, styles, metadata and attachments; Import Package recreates it on any GeoTee server. Add Data gained WMTS · OGC API · WFS · MVT (web services and vector tiles), PostGIS (table or read-only SQL) and Geotagged photos (EXIF GPS → points with the photos attached). Export now offers Excel (.xlsx) and AutoCAD DXF.

2Adding data

25 minutes · editors

Everything you add goes into the layer library first, so it can be reused in any map or app. Map › Add Data opens a dialog with four tabs.

Upload tab
Upload file — zipped shapefile (.shp + .shx + .dbf + .prj in one .zip), GeoJSON, KML/KMZ, GeoPackage, GPX, or a CSV / Excel sheet with latitude-longitude columns. Up to 200 MB.
Admin boundaries tab
Admin boundaries — country and province/district outlines from the open geoBoundaries project. Pick the country and the level (ADM1 = province, ADM2 = district, ADM3 = division).
Tile / WMS tab
Tile / WMS layer — an image overlay from any XYZ tile server or WMS service (for example a scanned 1:50,000 sheet served by a GIS unit). From URL imports a file straight from a web address, including ArcGIS REST FeatureServer layers.

Spreadsheets with coordinates

A CSV or Excel file becomes a point layer if it has columns named like lat/lon, latitude/longitude, y/x or northing/easting. Values must be decimal degrees (e.g. 7.7102, not 7°42').

Coordinate systems — the one thing that goes wrong

If your data lands in the wrong place (or in the sea off West Africa)the file had no .prj, so the software could not tell what coordinate system it uses. GeoTee asks you when this happens. Most Sri Lankan Survey Department and district data is in SLD99 (EPSG:5235); older files use Kandawala (EPSG:5234). GPS and most web data is WGS84.

Once imported, every layer is stored in WGS84 and reprojection is automatic — you never need to think about it again. Right-click a layer in the Catalog and choose Properties to see the original system, the feature count and the fields.

Exercise 2(a) Import Sri Lanka ADM2 from Admin boundaries. (b) Make a two-row spreadsheet with columns name, lat, lon (for example your office at 7.7102, 81.6924) and upload it. (c) Add both to the map.

3Working with the map

20 minutes · everyone

TaskHow
Change the basemapMap tab → gallery. Light Gray is best under coloured data; Imagery is Sentinel-2 satellite.
Identify a featureClick it in Explore mode — a pop-up shows its attributes.
Select featuresMap › Select, click a feature (Shift-click to add more). Clear removes the selection.
See all attributesSelect the layer, then Feature Layer › Attribute Table (or double-click the layer in Contents). Filter rows, click a row to highlight it on the map, double-click to zoom to it, Export CSV to download.
MeasureMap › Measure, click points, double-click to finish. The length shows in the status bar.
Zoom to a layerRight-click the layer in Contents → Zoom To Layer.
Save the mapCtrl+S or Share › Save Map. Saved maps are listed in the Catalog under Maps.
Export a pictureShare › Export Map PNG — includes a title, legend, scale bar and attribution.
Attribute table docked below the map
The attribute table docks under the map. Rows and map features select each other.
Exercise 3Open the attribute table for the districts layer, type Batticaloa in the filter box, click the row and confirm the district highlights on the map. Then export the table as CSV.

4Symbology and labels

30 minutes · editors

Select a layer in Contents, then open the Symbology pane (bottom tab of the right pane, or Feature Layer › Appearance › Symbology). Changes apply immediately to the map and to the legend in Contents.

Symbology pane with Graduated Colors
Graduated Colors on a population field: five classes, Natural Breaks, YlOrRd colour scheme. Each class break and colour can be edited in the list.
Primary symbologyUse it for
Single SymbolOne colour for everything. Set fill colour, outline, opacity, point size.
Unique ValuesA colour per category (district name, land-use class, status…). Shuffle colors re-assigns the palette; each value's colour and label can be edited.
Graduated ColorsA numeric field shown in classes (choropleth). Methods: Natural Breaks (Jenks) for most data, Equal Interval when the range matters, Quantile for equal counts.
Graduated SymbolsPoint size by a numeric field (e.g. population of towns).
Heat MapDensity of many points (incidents, households).

Symbol Gallery — markers, patterns, line styles

Symbol Gallery
Symbology pane → Symbol button opens the Symbol Gallery: 120+ markers in 12 categories (Shapes, Health, Education, Government & public safety, Transport, Water & sanitation, Utilities & energy, Agriculture, Environment & hazards, Buildings & places, Emergency & disaster, Arrows) plus My symbols for your own SVG/PNG. Search across all categories with the box at the top.
OCHA humanitarian icons
The Humanitarian group in the gallery — WASH icons shown. Everything here is UN OCHA public-domain artwork.
Symbols on the map
Every built-in marker takes the layer colour, size, outline and opacity — so a hospital symbol in Unique Values is blue for one class and orange for another. In Unique Values each class row has its own small symbol button: schools get the school marker, clinics the clinic marker.
Point markersPick from the gallery, or keep a Basic shape (circle, square, triangle, diamond, star, pin). Rotate symbols by field turns arrows and vehicles by a bearing/heading column (degrees).
Polygon fillsFill pattern: solid, diagonal hatch, cross-hatch, horizontal, vertical, dots, grid, or outline only (no fill) — hatches take the layer colour.
Line stylesSolid, dashed, dotted, dash-dot, long dash, railway (cased with ticks), arrows along line (flow direction), double line (road casing).
Humanitarian icons (UN OCHA)The full OCHA Humanitarian Icons set — 267 public-domain (CC0) markers used in UN situation reports and 3W/4W maps — grouped as Hazards & disasters, Protection & conflict, Health & nutrition, Water-sanitation-hygiene, Food & relief items, Shelter-camps-buildings, Transport-logistics-infrastructure, People & displacement. They tint like the built-ins (a red Flood, a blue Water trucking).
My symbolsEditors can upload an SVG or PNG (≤ 512 KB) in the My symbols category — a logo, a project icon. PNG symbols keep their own colours. Uploaded symbols are shared by all users and work in published apps too.

Labels

Labeling pane
The Labeling pane: tick Label features, choose the field, size, colour and halo. Tamil and Sinhala text renders correctly.

More renderers: proportional, bivariate, dot density, charts

Proportional symbols
Proportional Symbols — unclassed sizes (area ∝ value); polygons get the symbol at their centre; the legend shows min / mid / max.
Bivariate colours
Bivariate Colors — two fields, 3 × 3 classes, five palettes; dark = high on both. The Contents legend shows the grid.
Dot density
Dot Density — one dot per N units, several fields in different colours; dots are placed randomly but identically every time.
Chart symbols
Charts — a pie or bar per feature from several fields, sized by the total or another field.

Label expressions, classes and placement

Label expressions and classes
Type a template such as {district|upper} / {cases|0} cases (click a field chip to insert it), choose the placement (curved along lines, centre, boundary), then add a label class — e.g. cases > 500 gets bigger dark-red text with a ★. Priority decides who wins when labels collide.
Map tip
Map tips: in the Pop-ups pane set a hover template — the text follows the mouse over the feature.

Group layers, map themes, dark theme

Group layers
Right-click a layer › New Group Layer… / Add To Group… (or View › Layers). A group has one checkbox for all its layers, collapses, and is saved with the map. View › Map Themes stores named on/off + basemap sets; View › Dark Theme switches the interface.
Dark theme
Dark theme with group layers, label classes and a map tip.
Good habitsUse 4–6 classes, not 9. Keep outlines thin (1 px). For choropleths of counts, prefer rates (per 1,000 people) where possible — large districts otherwise look "more" simply because they are bigger.
Exercise 4Style the districts with Unique Values on shapeName, then switch to Single Symbol with a 30 % opacity fill and label them with shapeName at size 11.

5Analysis tools

30 minutes · editors

The Analysis tab runs geoprocessing on the server. Every tool produces a new layer in the library; your input layers are never changed. Select the input layer in Contents first, then click a tool.

Analysis ribbon
Geometry · Overlay · Extract & Statistics groups.
Buffer dialog
Buffer: distance in true metres (computed in the local UTM zone). Tick Dissolve to merge overlapping rings.
ToolWhat it answersExample
BufferWhat is within X metres of these features?500 m around schools; 2 km around a river
DissolveMerge features that share a value (with counts and sums)GN divisions → DS divisions, summing population
Feature To PointOne point inside every polygonLabel points, distance calculations
Bounding GeometryThe outline around all featuresProject area from survey points
ClipKeep only what falls inside another layerRoads inside one district
EraseRemove what falls inside another layerLand minus protected areas
IntersectOverlaps with attributes from both layersFlood zone × GN division
Spatial JoinCount (or sum a field) of layer B inside each feature of layer AHouseholds per GN division; wells per district
Select By AttributeA new layer of features matching a condition and/or locationDistricts where POP > 500000; villages inside a buffer
Summary StatisticsMin / max / mean / sum of a field, total area and lengthTotal road length in km

Raster and surface analysis (DEMs, imagery)

Raster results
The Raster · Surface group: Surface ▾ (Slope, Aspect, Hillshade, Contours, Viewshed, TRI, TPI, Roughness, Fill NoData), Raster ▾ (Raster Calculator, Reclassify, Band Index NDVI/NDWI/NDBI/SAVI, Clip Raster, Raster To Polygon, Feature To Raster, Zonal Statistics, Extract Values To Points, Raster Statistics) and Density ▾ (Kernel / Point Density, IDW Interpolation, Euclidean Distance). Here: multidirectional hillshade, slope, 50 m contours and a viewshed from a 30 m tower on the Batticaloa SRTM DEM.
Viewshed dialog
Raster tools read the GeoTIFF you uploaded (Add Data › Raster keeps the source since this batch). Results are tiled for display and kept as GeoTIFFs, so one result can feed the next tool — Slope → Reclassify → Zonal Statistics.
SurfaceSlope (° or %), Aspect, Hillshade (sun position, multidirectional), Contours (lines or filled bands), Viewshed (observer height, max distance), Ruggedness / Position / Roughness indexes, Fill NoData.
RasterRaster Calculator (numpy expression on A and B), Reclassify (min-max=class rules), Band Index (NDVI, NDWI, NDBI, SAVI from Sentinel/Landsat/drone bands), Clip Raster, Raster To Polygon, Feature To Raster, Zonal Statistics (mean/min/max/sum/std/majority per polygon), Extract Values To Points, Raster Statistics.
Density & interpolationKernel / Point Density (per km², weight field), IDW (rainfall, groundwater, salinity surfaces), Euclidean Distance (distance to nearest road / clinic).
More vector toolsIdentity, Update, Join Attributes By Location, Tabulate Intersection, Polygon Neighbours, Generate Near Table, Distance Matrix, Densify, Points Along Line, Split Line At Points, Offset Line, Delaunay, Random Points, Bounding Circle / Rectangle, True Centroid, Split By Attribute, Field Summary, Geocode Addresses, and the data-quality set: Check / Repair Geometry, Snap To Layer, Eliminate Slivers, Delete Duplicates, Remove Overlaps.

Network analysis (roads)

Network analysis
The Network group: Route (pick stops on the map or from a layer; best stop order), Service Area (drive- or walk-time polygons — here 10/20/30 minutes from Batticaloa town), and under More ▾: Closest Facility (nearest by travel time, with route lines) and OD Cost Matrix. Routing runs on our own server with OpenStreetMap roads for Sri Lanka — driving and walking profiles; nothing is sent to outside services.
Exercise 5cRun Service Area from your office point with breaks 15, 30, 45 (driving). Then Closest Facility with your villages as incidents and the hospitals as facilities, tick route lines, and find villages with near_time_min > 45 using Select By Attributes.

Spatial statistics 2, vehicle routing and your own road network (batch 21)

Optimized Outlier Analysis
Analysis › Spatial Statistics ▾: Optimized Outlier Analysis (Local Moran with an automatically optimised distance band, permutations and a false-discovery-rate correction), Multivariate Clustering (k-means, automatic k), Calculate Rates (crude / empirical Bayes), Collect Events, Generate Spatial Weights Matrix, Lee's L.
Outlier result
The result is symbolised automatically: red High-High clusters, blue Low-Low, orange High-Low and light-blue Low-High outliers, grey not significant (cholera cases by district, Somalia W47 2023).
Vehicle routing
Network › More ▾ › Vehicle Routing: a depot, a stops layer, the number of vehicles, capacity and a route limit; travel mode now includes Bicycle.
VRP result
Three vehicles, 75 stops, capacity 30: a routes layer coloured by vehicle and a stops layer with vehicle and seq for the driver sheets.
Own network
Route on Own Network: routing over your line layer (estate roads, footpaths, canals) instead of OpenStreetMap — cost by length, speed, a speed field or a cost field, optional one-way field. Also Service Area, Closest Facility and OD Matrix on the same network.
Exercise 5fRun Collect Events on an incident layer, then Optimized Outlier Analysis on ICOUNT. Then plan two delivery routes (capacity 20) from your office to 30 shops with Vehicle Routing.

Hydrology, cost surfaces, interpolation and more raster tools

Hydrology tools
Hydrology ▾: Fill Sinks · Flow Direction · Flow Accumulation · Stream Network (Strahler order) · Watershed (pour points snapped to streams) · Basins / iso-basins · Trace Downstream · Distance To Stream · Cost Distance / Least-cost Path. Engine: WhiteboxTools (open source) on the DEM you uploaded. Here: streams and watersheds from the Batticaloa SRTM.
Surface extrasCurvature (profile / plan / tangential / total), Landforms (geomorphons: 10 classes).
Raster managementSet Null / Con, Cell Statistics (across rasters), Focal Statistics (moving window), Region Group, Resample, Mosaic, Composite Bands, Raster To Points, Tabulate Area.
InterpolationKriging (automatic spherical variogram), Thin-plate Spline, Trend surface, TIN (linear), Nearest neighbour — plus the earlier IDW and densities.
Geometry batch 2Points To Line, Split By Polygons, Extract Vertices, Split Line At Vertices, Unsplit Line, Extend Line, Smooth, Aggregate Polygons, Collapse Dual Lines, Rotate, Drape On DEM (add Z), Add Surface Information, Pivot Table.
Network 2Location-Allocation — choose the N best facility sites by population-weighted travel time on the road network.
Spatial statistics pluginsLocal Moran's I (LISA), Average Nearest Neighbour, Mean Centre / Standard Distance / Directional Ellipse, Ripley's K, OLS Regression, Geographically Weighted Regression, Similarity Search, Composite Index, SKATER regionalisation, 80/20 (Pareto).
Exercise 5dRun Stream Network on your DEM (threshold 500), then Watershed with your town points (snap 300 m). Style the watersheds with Unique Values on pour_id at 40 % opacity over the hillshade.

Plugins (add-ins)

Plugin Manager
Analysis › Plugins ▾ lists installed add-ins by category; Plugin Manager (administrators) installs from the catalogue, a zip or a URL, and enables / disables / uninstalls. Twenty-one come with GeoTee (spatial statistics included): Desire Lines, Hot Spot Analysis (Getis-Ord Gi*), Spatial Autocorrelation (Moran's I), Density-based Clustering (DBSCAN), Elevation Profile, Coordinate Capture, Graticule, Date/Time Tools, Line Direction, CSV Geometry Import (WKT), Swap X/Y.
Elevation profile plugin
Elevation Profile: draw a line over a DEM and read the profile, climb and descent.
Write your ownA plugin is a small zip (manifest + Python / PHP / JavaScript). The dialog is generated from the manifest, results become layers or tables like any built-in tool. See Writing a GeoTee plugin.
Where to find themEvery tool has a page in the Tool Reference (summary, illustration, usage, parameters, output, example) and each dialog has a ? Tool help link to it. 127 tools in total.

Suitability modelling

Weighted overlay
Analysis › Suitability ▾ › Weighted Overlay: tick the criterion rasters, give weights (or derive them with AHP pairwise comparison — the dialog reports the consistency ratio), tick invert where low is good, and run. Follow with Locate Regions to find the best contiguous sites of a given size, or build 0–1 memberships with Fuzzify and combine them with Fuzzy Overlay.
AHP pairwise comparison
AHP: judge each pair on the 1–9 scale; weights come from the principal eigenvector, CR ≤ 0.10 means the judgements are consistent.
Exercise 5dFuzzify slope (Small, midpoint 8, spread 2) and elevation (Large, midpoint 30, spread 3), combine them with Fuzzy Overlay (gamma 0.9), then Locate Regions for three 500 ha sites.

History, batch run, models and webhooks

Geoprocessing history
View › History: every tool run with its parameters, time and outputs — press ↻ to run it again. ● Record model, run a workflow (here Buffer → Dissolve), ■ Stop, name it: the chain is saved as a model whose first input becomes $input; Run applies the whole chain to any other layer.
Batch run
Every tool dialog has a Batch section — tick other layers and the tool runs once per layer with the same settings.
Webhooks
Webhooks (admin): send layer, edit, form-submission, tool and publish events to n8n or any URL — signed with a secret, with a Test button.
Exercise 5eRecord a model that buffers a point layer by 500 m and dissolves the result; run it on a second point layer. Then open Buffer, tick two extra layers in Batch and run.

Toolbox tab and Toolbox pane

Toolbox tab
The Toolbox tab lists every tool and plugin by toolbox › toolset — the same tools as the Analysis tab, arranged like a toolbox — with Favorites, Recent and the Tool Reference.
Toolbox pane
Toolbox Pane (right dock, also the Toolbox tab at the bottom of the dock): type to find a tool, click to open it, ☆ to keep it in Favorites.

Topology check

Topology Check dialog
Analysis › Topology ▾ › Topology Check: tick rules (overlaps, gaps, slivers, dangles, missing vertices, self-intersections… 20 in all), set thresholds in metres, run.
Topology errors
Errors arrive as a point layer coloured by rule; open its table to step through them, then fix with the Topology menu (Fill Holes, Add Missing Vertices, Remove Parts, Orthogonalize…) or the editor.
Exercise 5cRun Topology Check on your district polygons with Overlaps, Small gaps (gap area 50,000 m²) and Missing vertices along borders. How many errors of each kind? Run Add Missing Vertices Along Borders in place and check again.
Exercise 5bUpload a DEM (Add Data › Raster, colouring Terrain). Run Slope, then Reclassify it with 0-5=1, 5-15=2, 15-30=3, 30-90=4, then Zonal Statistics with the districts as zones and prefix slope. Open the districts' table: slope_majority is the dominant slope class.
Exercise 5Buffer your office points by 3,000 m. Then run Spatial Join with the districts as target and the points as join layer, open the result's table and find the join_count column.

6Editing data

25 minutes · editors

Select a vector layer, open Feature Layer › Edit and press Start Editing. Everything you do is kept as unsaved edits until you press Save Edits; Discard throws them away.

Editing session
An editing session: the Edit tab shows which layer is being edited and how many edits are unsaved.
  1. Edit attributes — click a feature on the map; a form opens with every field. Change values and press Apply. In the attribute table you can also double-click a cell.
  2. Add features — Add Point then click the map; Add Line / Add Polygon then click each vertex and double-click to finish (or press Finish Sketch). New features start with empty attributes — click them to fill in.
  3. Reshape — click a feature; its vertices appear as handles. Drag a handle to move it.
  4. Delete — select features (Select tool or table rows) and press Delete Selected, or use Delete feature in the edit form.
  5. Add Field — adds a new empty column to every feature.
  6. Save Edits — writes the changes to the library. A snapshot of the previous state is kept automatically.
Versions dialog
Versions lists the last ten snapshots; Restore rolls the layer back (the current state is snapshotted first, so nothing is lost).
Shared libraryEdits change the layer for every map and app that uses it. Check with colleagues before reshaping a layer others rely on — or make a copy first with Analysis › Select By Attribute and no condition.
Exercise 6Start editing your office points, add a third point, give it a name, save, then open Versions and restore the previous snapshot.

Editing 2: undo, move, reshape, split, merge, constraints, templates

Edit ribbon
The Edit tab: Undo / Redo (Ctrl+Z / Ctrl+Y) for every edit; Move drags the selection; Rotate / Scale… is numeric; Reshape and Split are sketched lines; Merge, Explode multipart, Reverse line; Copy / Paste features between layers (fields matched by name); Topological editing moves shared vertices of neighbours together; Constraints opens a bar for exact distance / bearing / ⟂ / ∥ sketching; Templates ▾ starts a sketch with default attributes.
Split
Split: select a feature, click Split, draw a line right across it, double-click — the parts keep the attributes.
Exercise 6bStart editing a copy of the districts layer. Split one district with a line, merge the two halves back, undo twice, then sketch a 100 m × 50 m rectangle with Constraints (distance 100, bearing 90; distance 50, bearing 180; distance 100, bearing 270).

7Building an app

40 minutes · editors

An app is a web page made of widgets — map, legend, filter, chart, table and so on — that talk to each other. Build the map first (layers, symbology, labels), then Insert › New App from Map.

App builder
The App Builder: widget palette and outline on the left, the page canvas in the middle, Properties on the right. The amber App Builder › Design tab holds Save, Preview and Share.

Arranging widgets

  • Click a widget type in the palette to add it. Drag its title bar to move it; drag the corner handle to resize. The page is a 12-column grid.
  • Click a widget and edit its settings in Properties. Delete removes the selected widget.
  • Data widgets (Table, Filter, Chart, Statistic, Search, Time Slider) point at a data source — one of the layers in the app. Add more layers from the Catalog by double-clicking them.
  • The Map widget's Update layers & symbology from Map view button copies whatever you have styled in the Map view into the app.
WidgetDoes
HeaderTitle, subtitle, logo, page navigation, optional Print button
MapThe map with its layers and basemap; pop-ups on click
Legend / Layer ListExplain the map; let viewers turn layers on and off
FilterDrop-downs and range sliders on fields — the map, table, chart and statistic all follow
ChartBar or pie by a field, count or sum. Clicking a bar filters everything else
Table / Statistic / SearchAttribute grid · one big number · find a feature by name
Time SliderPlay through a date or number field; features appear as the slider advances
Swipe CompareTwo synchronised maps with a draggable divider — before/after, plan vs. survey
BookmarksNamed views the visitor can jump to
Text / ImageExplanations, photos, logos
Time slider widget
A Time Slider filtering the map, table and statistic as it moves.
Swipe compare on a second page
A second page with a Swipe Compare widget. Use Design › Add Page; the header shows the page navigation automatically.
Layout that worksHeader full width on row 1 · Map 8 columns wide on the left · Legend, Layer List and Filter stacked in the 4 right columns · Table full width under the map. That is what New App from Map gives you — change it only when you have a reason.
Exercise 7Create an app from your map. Add a Chart (pie, group by shapeName), a Statistic (count), and a second page with a Swipe Compare of districts vs. your buffer layer. Preview it.

Dashboards, stories and map tools

Dashboard app
New widgets: Gauge (min / max / target, amber and red thresholds), Indicator (value against a target with colour rules), Selector (filters every other widget by a field), Serial Chart (by day / week / month; click a bar to filter), Auto-refresh (live data from field forms), Measure, Draw (download the sketch as GeoJSON) and Directions (type places or pick on the map — routes on GeoTee's own road network, also in public apps).
Story page
Story widget beside a Map: write sections and press Capture map view for each — readers scroll, the map flies. Put it on its own page for a story-map style report.
Open data catalogue
/catalog.php lists every public map, app and form with its layers and download buttons — an open-data portal for your organisation. Shared links of published apps now show a title, description and preview image (Open Graph).
Exercise 7bMake a dashboard from the districts layer: a Gauge of districts reporting (target 100), an Indicator of total cases (target 20,000, good when below), a Selector on region and a Serial Chart. Publish it as Public and open /catalog.php.

8Sharing and publishing

15 minutes · editors

Share dialog
Design › Share: choose who can open the app, change its web address, set an optional viewer password, copy the link or the embed code.
SettingMeaning
PrivateOnly signed-in users of GeoTee can open it.
Anyone with the linkNo sign-in needed, but the app is not listed anywhere. Good for sharing with a committee or a client.
PublicOpen to everyone.
Viewer passwordVisitors must type this password before the app opens — for link/public apps that carry sensitive layers.
EmbedPaste the <iframe> into any website or WordPress page.
Published app
What visitors see. On phones the widgets stack vertically. Only the layers used in the app are readable through the link — nothing else in your library is exposed.
Exercise 8Share your app as Anyone with the link with the password training, open the link in a private browser window and confirm the password prompt appears.

9Users and administration

10 minutes · admins

Users dialog
Project › Users: add accounts, change roles, reset passwords.

Groups, sharing, two-factor, SSO, API keys, usage and languages (batch 22)

Groups
Project › Groups (admin): create groups such as a district office or a survey team and add members.
Sharing
Right-click any layer, map, app or form in the Catalog › Sharing…: everyone, only these groups (view or edit each) or only me. Items not shared with you disappear from the Catalog and cannot be opened, analysed or edited. 🔒 / 👥 badges mark restricted items.
Two-factor
Project › Two-factor: scan the QR code with any authenticator app, enter the code, keep the 8 recovery codes. From then on sign-in asks for the 6-digit code after the password. Admins can reset it for a user who lost the phone (Users dialog).
API keys
Project › API Keys: a personal key for scripts, QGIS, n8n or another server — Authorization: Bearer gt_… on any API call. Read keys only read; write keys carry your role. The key is shown once.
Usage report
Project › Usage Report (admin): calls per day, who used what, tools run, storage by owner, app views, form submissions — 7 / 30 / 90 days, CSV downloads.
Tamil interface
Project › Language: the ribbon, panes and common buttons in Tamil or Sinhala; remembered for your account. Tool names inside dialogs stay English so they match this reference.

Single sign-on: if your organisation runs Keycloak, Authentik, Google Workspace, Microsoft Entra or Okta, the admin adds an oidc block to config.php and a Sign in with … button appears on the sign-in page; accounts are created on first sign-in with the default role (or a role claim).

  • Give most people the viewer role. Make someone an editor only if they upload, analyse or build. Keep admin to one or two people.
  • Everyone can change their own password under Project › Change Password. Change the default admin password on day one.
  • The Catalog shows a dot (●) next to apps that are published, and each app counts its views.
  • Deleting a layer from the library removes it from every map and app that used it — the Catalog warns you. Prefer renaming or leaving it in place.

10Data tools and advanced symbology

40 minutes · editors — everything added in the September update

Selecting features

The Map › Selection group now has By Attributes (an expression such as POP > 100000 AND DISTRICT = 'Ampara'), By Location (features that intersect, or are within a distance of, another layer), Invert and Zoom To. In Select mode, Shift+drag draws a box. Selections feed every other tool: delete selected, zoom, export from the table.

Select by attributes dialog
Select By Attributes. The expression language is the same everywhere: = <> > < >= <= LIKE IN IS NULL AND OR NOT ( ).

Advanced symbology

Advanced symbology options
Normalise a graduated map by another field (population ÷ area), reverse the colour scheme, dashed outlines, marker shapes, clustering, visible scale range and a definition query — all in the Symbology pane.
OptionWhat it does
Normalise byDivides the classified field by another (density per km², cases per 1,000 people). Fixes the "big areas look important" problem.
ReverseFlips the colour ramp so high values are light instead of dark.
Marker shapeCircle, square, triangle, diamond, star or pin for point layers.
Cluster pointsGroups nearby points into a numbered circle at small scales; click a cluster to zoom into it.
Line / outline styleSolid, dashed, dotted, dash-dot.
Visible scale rangeOnly draw the layer between two zoom levels (e.g. buildings only when zoomed in).
Definition queryShow only features matching an expression, without making a new layer. The attribute table follows it.

Pop-ups

Pop-ups pane
The Pop-ups pane: choose the title field, tick which fields appear, and give fields friendly aliases. Web links become clickable and image links show the picture. Published apps use the same configuration.

Layer order

Drag a layer in Contents to change the drawing order (top of the list draws on top), or right-click → Move Up / Move Down.

Data management tools (Analysis tab)

Full analysis ribbon
The Analysis ribbon after the update: Geometry, Overlay & Proximity, Extract & Statistics, and Data Management.
ToolUse it for
Field CalculatorNew field from an expression — POP / area_km2, UPPER(name), CASE WHEN pop > 1000 THEN 'big' ELSE 'small' END. Changes the layer in place; a version is kept.
Calculate GeometryAdds area (km², ha), length, perimeter and centre latitude/longitude as fields.
Join TableAttach a CSV/Excel table (census figures, survey results) to a layer by a shared key such as a district code.
Delete / Rename Field, Merge Layers, Copy LayerHousekeeping.
Export LayerDownload as Shapefile, GeoPackage, GeoJSON, KML, CSV, FlatGeobuf or GPX in WGS84, SLD99, Kandawala, UTM or Web Mercator — for QGIS, Google Earth, Excel or a Survey Department submission.
Field calculator
Field Calculator with the expression help.

New analysis tools

ToolWhat it answers
NearWhich feature of layer B is closest to each feature of layer A, and how far (nearest hospital to each village).
VoronoiThe area closest to each point — catchments / service areas from school or clinic locations.
Grid / Hex BinsCounts (or sums) per square or hexagon cell — density maps from incident points.
Statistics By CategoryA table of count, area, length and numeric sums/means per category (per district, per land-use class). Download as CSV.
Union, Symmetrical DifferenceThe remaining overlay operations.
Multiple Ring Buffer, Simplify, Multipart→Single, Polygon→Line, Line→PolygonGeometry utilities.
Statistics by category result
Statistics By Category on countries grouped by continent.

Finding places and coordinates

Map › Inquiry has a Find a place box (OpenStreetMap place names), Go To XY (type WGS84, SLD99, Kandawala, UTM or Web Mercator coordinates — degrees-minutes-seconds accepted) and Measure Area alongside Measure Length.

New app widgets

List, basemap gallery and embed widgets
List (cards synced with map selection), Basemap Gallery, Embed (YouTube, Google Forms, other apps) and histogram / line charts. The Search widget can also find places.
Exercise 10(a) Run Calculate Geometry on the districts, then style them as Graduated Colors on area_km2. (b) Set a definition query area_km2 > 2000. (c) Join a two-row CSV with columns shapeName, visited to the districts by shapeName. (d) Export the result as a Shapefile in SLD99.

11Imagery, 3D, print layouts and field data collection

40 minutes · editors

GeoTIFF, drone imagery and scanned maps

Add Data › GeoTIFF / imagery accepts a GeoTIFF, JPEG2000, or a zip with an image and its world file. The server cuts it into map tiles (choose the detail level: 16 for 1:50,000 sheets, 18–20 for drone orthomosaics) and it appears as an image layer you can switch on, fade with opacity, and use in apps. Images without georeferencing must be georeferenced in QGIS first.

GeoTIFF layer on the map
A raster layer draws under your vector layers; drag it to the bottom of Contents.

3D view

In the Symbology pane, polygon layers have 3D extrude by field: the height of each feature comes from a number (population, cases, buildings' storeys). Map › 3D View tilts the map; right-drag rotates and tilts freely. In apps, set the Map widget's Initial tilt.

3D extrusion
Districts extruded by area, coloured by the same field.

Layout View — the page for printing

Like ArcMap, GeoTee has two views of a map. Data View is the map you work in. Layout View is the printed page: a map frame plus surrounds — title, text, legend, north arrow, scale bar, scale text, date, picture, rectangle. Switch with the two small icons at the bottom-left of the map (or the view tabs above it). The layout is saved with the map.

  1. Open Layout View. A default page is created: title, subtitle, map frame, legend, north arrow, scale bar, scale text and attribution.
  2. Page Setup ▾ on the Layout tab: A4 / A3 / Letter, landscape or portrait.
  3. Drag any element to move it; drag the red corner handle to resize; double-click text to edit it. The Properties pane shows exact position and size in millimetres, font size, colour and alignment.
  4. Pan and zoom inside the map frame to set what prints — the scale bar and scale text update automatically. Match Data View copies the Data View extent; Refresh Layers picks up symbology changes.
  5. Insert more elements from the ribbon. Bring to Front / Send to Back orders overlapping elements; Delete removes the selected one.
  6. Export PDF or Export PNG (150 dpi). Save Map keeps the layout with the map.
Layout View
Layout View: elements list on the left, page in the middle, Properties on the right, Layout ribbon on top.
Exported page
The exported A4 landscape page.

Layout 2: tables, charts, grids, dynamic text, map series

Report page template
Layout › Templates ▾ › Report page: map on top, a Table and a Chart below, both fed by a layer (choose it in Properties; filter, sort, top-N). Text can carry tokens such as [Map.title], [Date.long], [Page.number] of [Page.count], [Scale], [User]. Tick Map grid on the frame for a lat/long graticule with DMS labels.
Map series
Map Series… (atlas): pick an index layer, a name field, a sort field and an optional filter — the frame zooms to each feature; [Atlas.district] puts the feature's attributes into titles, and a table can show only the current feature. Page through with ◀ ▶ and Export all pages writes one multi-page PDF.
ExportsPDF and PNG as before, plus SVG (editable text and shapes, maps as images) and Geospatial PDF (opens in Avenza Maps / QGIS with real coordinates — keep the frame north-up).

For a quick one-off page without arranging anything, Map › Print Layout still produces a standard page in one dialog.

Snapping

When sketching or reshaping, turn on Edit › Snapping: the cursor jumps to the nearest vertex of any visible layer (a red ring shows the snap). Boundaries drawn against a district line will share its exact vertices — no slivers.

Snapping indicator
Snapping on while editing.

Field data collection

A form is a public mobile web page that adds records (points, lines or areas) to one of your layers — or updates existing ones — the GeoTee equivalent of Survey123 / KoboToolbox for simple surveys. Field staff open the link (or scan the QR code) on any phone, answer the questions, use GPS or tap the map, and submit. Records appear in the layer immediately, so your maps and apps update live.

  1. Create or upload a vector layer (point, line or polygon) with the fields you want to collect (use Edit › Add Field to add questions).
  2. Insert › New Form: pick the layer, tick the fields to ask, give each a label and a type (text, long text, number, date, choice list), mark required ones, choose how location is captured.
  3. Share it: Anyone with the link plus an optional password. Print the QR code on the survey sheet.
  4. Watch the records arrive: open the layer's attribute table, or build an app with a table and a chart on it.
Form designer
The form designer.
Form on a phone
What field staff see on a phone.

Offline forms, photos, update forms, lines and areas (batch 20)

Form designer 2
The designer now takes any vector layer (the note tells you whether the surveyor will capture a point, a line or an area), Add new or Update existing records (choose the field they search by), a show only if rule per question (skip logic), a GPS accuracy threshold, walking-mode interval, photos and the messages.
Area form
An area form on a phone: tap the corners (or ▶ auto-record while walking), see the live length, add photos (compressed on the phone), Undo, Submit. The Population question appeared only after Plot was answered.
Offline queue
No signal? The record (with its photos) is saved on the phone and the header shows offline; it is sent automatically when the connection returns, or with Send now. Open a form once while online and it keeps working offline — install it from the browser menu ("Add to Home screen").
Update form
An update form (inspection / re-visit): search the record by name or tap it on the map, the answers are pre-filled, change what you need, Save changes. The record is edited in place — no duplicates.
Exercise 11bMake an update form on your wells layer (search by name) with a required GPS accuracy of 20 m and photos on. Open it on your phone, turn on flight mode, update a well with a photo, then turn the connection back on and watch the queue empty and the attachment appear on the well's pop-up.
Good practiceKeep forms short (5–10 questions). Use choice lists instead of free text wherever possible — they make the analysis tools far more useful. Each record gets a _submitted_at timestamp. Submissions are limited to 60 per hour per connection to deter abuse.
Exercise 11(a) Create a form on your office-points layer with a required name and a condition choice list (good, fair, poor). (b) Open the link on your phone and submit two records with GPS. (c) Build an app with a Chart (pie by condition) on that layer.

12Time series — weekly, monthly and yearly data on the map

25 minutes · editors · surveillance, vaccination, any repeated return

Disease surveillance and programme data arrive as one workbook per epi week or per month, each with the same districts and the same columns. GeoTee reads the whole pile at once and turns it into a time series attached to your boundary layer — no copy-pasting weeks side by side, no duplicated polygons.

Import

  1. Add the boundary layer (districts, regions, health facilities) to the map and select it.
  2. Analysis › Time Series. Choose the key field — the layer column that holds the district code or name.
  3. Pick all the workbooks in one go (Ctrl+A in the file dialog). The period comes from the file name (Cholera W44 2023.xls, OCV Jan 2024.xlsx, Cases 2022.csv), from the sheet names when a workbook holds one sheet per period, or from period columns / a period column inside a sheet.
  4. Press Analyse files: you get the list of periods found, how many districts matched, the names that did not, and files that were skipped (a “W36 to 39” aggregate, a file with no period). Fix spellings with one line each — Walaweyn = Wanleweyne — then Import.
Time Series import dialog
The importer reports periods, matches and skipped files before anything is written.

Cumulative sheets are recognised automatically (numbers that keep rising week after week): the series keeps the total and Cases_new — new cases that week. A drop of more than half is read as the counter restarting at the new year. Rates, CFR and population are never differenced. Next week, upload only the new file with Add to the existing series ticked.

Time Bar

Analysis › Time Bar (or right-click the layer in the Catalog › Time bar…). A bar appears over the map: choose the measure (cumulative cases, new cases, deaths, attack rate…), drag the slider or press ▶. Class breaks are computed once across all periods, so the same colour means the same number in every week — essential when the map is played or printed as a series. Districts without a value are grey.

Time bar showing new cases in W17 2023
New cholera cases by district, week 17 of 2023; the legend names the measure and the period.

Show switches to change maps: change vs previous period, % change, change vs the same period last year (diverging colours, decreases in green) and per 100 000 population when a population field exists.

Change map
Change versus the previous week — where the outbreak is growing and where it is fading.
  • Click a district — the pop-up ends with a sparkline of the whole series and the last four values.
  • chart — bars over time for the selected districts (or the whole layer) and a CSV download of the numbers.
  • export all — one PNG per period, with title, legend and scale bar, packed in a ZIP. The weekly map series for a sitrep in one click.
  • The time bar state is saved with the map; Esc or ✕ closes it and restores your own symbology.
Pop-up with sparkline
Pop-up sparkline: the district's history at a glance.

In a published app

The App Builder has a Time Series widget: point it at the data source that carries the series, choose the measure and the mode, and viewers get the same slider, playback and chart in the browser without signing in.

Time Series widget in the App Builder
Time Series widget: slider, period label and a bar chart of the selection.

Movement (flow) maps

Displacement, referral or trade data comes as from → to → how many rows. Analysis › Flow Map reads such a table (UNHCR PRMN exports work as they are), matches origins and destinations to your district layer — Somali and anglicised spellings included — and builds two layers: flows (arcs with arrows, width = volume) and nodes (circles sized by arrivals, with departures and net in the pop-up). With a period column the Time Bar opens on the flows so you can play the pattern month by month, and “export all” gives one map per period.

Flow map of IDP movements
IDP movements 2016–2023 from the UNHCR PRMN dataset: the 250 largest district-to-district flows, nodes sized by arrivals, March 2023 selected.

13The Spatial Analysis Catalog — 65 more tools

GeoTee was checked line by line against the 270-method Spatial Analysis Catalog that ArcGIS Pro, ArcGIS Online and QGIS share. Every missing method that can run on a single server was added as a first-class tool: it has a ribbon button, a Toolbox entry, a Command Search hit and a Tool Reference page. Find them at the bottom of each Analysis menu, under the divider.

  • Geometry — Singlepart To Multipart, Variable-Width Buffer, Geodesic Buffer, One-Sided Buffer, Spatial Adjustment (rubbersheet / affine from control links).
  • Overlay & management — Areal Interpolation / Dasymetric (census counts → catchments), Linear Referencing (routes and events), Random Selection, Top / Bottom N, Sampling Design.
  • Spatial statistics — Quadrat Analysis, Mean / Median Centre, Moran’s I · Geary’s C · General G, Incremental Autocorrelation, Optimized Hot Spot, Kulldorff Spatial Scan (the SaTScan cluster test), Logistic / Poisson Regression, Spatial Lag / Error Regression, Geographically Weighted Summary, PCA, Hierarchical Clustering, Machine-Learning Prediction (random forest, boosting, SVM), TOPSIS ranking, Space-Time Clustering, Events To Time Series, Points To Tracks, 2SFCA accessibility, Interpolation Cross-Validation.
  • Network — Centrality, Connectivity and Trace on your own line layers; OSRM Map Matching for GPS tracks.
  • Hydrology — Breach Depressions, D-infinity flow, Flow Length, Stream Order / Links, Snap Pour Points, Longest Flow Path, Topographic Wetness Index, HAND flood inundation, Stream Burning, SCS-CN Runoff.
  • Surface & raster — Horizon Angle, Time In Daylight, Cut / Fill, Line Of Sight (pick on the map), Visibility Frequency, Euclidean Allocation, Cost Corridor, Morphology filters, Line Density, Landscape Metrics.
  • Remote sensing — Radiometric Scaling, Enhancement, Pan-Sharpening, Image PCA, Tasseled Cap, Unsupervised (k-means) and Supervised (random forest) Classification, Change Detection, Mann-Kendall Trend, Accuracy Assessment, RX Anomaly, Frequency-Ratio Susceptibility; the Index tool gained NBR, NDMI, EVI, MSAVI and BSI.
Epidemiology workflowLine list of cases → Events To Time Series (weekly counts per district) → Time Bar to play it → Spatial Scan Statistic or Optimized Hot Spot on the week that matters → publish as an app.

Not built, because they need specialised engines: SAR terrain correction and InSAR, voxel layers and traffic assignment. Added since: point clouds, MGWR, transit journeys, Sentinel-1 calibration and learned extraction (modules 51–56). The Plugin guide shows how to add such a method yourself.

14Imagery — the Remote Sensing Catalog

The 544-method Remote Sensing catalog (ArcGIS Image Analyst, QGIS / OTB / SNAP, ENVI, GEE) was checked against GeoTee the same way as the spatial-analysis one. Every method that runs on a normal server without GPUs or point clouds is now under Analysis › Imagery — 40 new tools plus deeper versions of Supervised / Unsupervised Classification, Change Detection, Pan-Sharpening and Accuracy Assessment. Multi-band GeoTIFFs (Sentinel-2, Landsat, Planet, drone) are displayed as natural colour and keep all their bands for analysis.

Band roles — set once

Sensors put bands in different orders, so the imagery dialogs ask for band roles (blue, green, red, red-edge, NIR, SWIR1, SWIR2) with presets for Sentinel-2, Landsat 8/9, Planet and RGB drones, and a reflectance scale factor (0.0001 for Sentinel-2 L2A). GeoTee remembers them in your browser.

  • Spectral — Spectral Index (30+ indices: NDVI, GNDVI, NDRE, EVI, SAVI, ARVI, VARI, chlorophyll, NDWI, MNDWI, AWEI, NDTI, FAI, NDMI, MSI, NBR, NBR2, BAI, NDBI, UI, BSI, NDSI, iron oxide, clay, ferrous), Band Combination presets, Split Bands, Image Filter (edges, unsharp, texture), Pan-Sharpening (IHS, Gram-Schmidt, PCA, Brovey), Minimum Noise Fraction, ICA, Decorrelation Stretch, Spectral Unmixing, Spectral Profile.
  • Preprocessing — Georeference from control points, automatic Co-registration, Dark-Object Subtraction, Histogram Matching, Relative Radiometric Normalisation, Topographic Correction (C, Minnaert, cosine), Destripe.
  • Classification — Image Segmentation (SLIC, Felzenszwalb, Quickshift, watershed → objects with statistics), Supervised Classification with 12 classifiers (random forest, boosting, SVM, kNN, tree, logistic, MLP, maximum likelihood, Mahalanobis, minimum distance, spectral angle, parallelepiped) and a probability raster, Unsupervised (k-means, ISODATA, fuzzy c-means), Classification Clean-up (sieve, fill holes, boundary clean, recode), Reference Sampling, Accuracy Assessment with F1 / IoU and area-adjusted (Olofsson) estimates.
  • Change & time — Change Detection (differencing, ratio, log-ratio, CVA, MAD), Post-Classification Comparison with transition matrix, CUSUM, Anomaly vs record, Trend, Harmonic Regression, Phenology Metrics, Temporal Gap Filling, Temporal Profile, Drought VCI / VHI.
  • Masks & thermal — Cloud / Shadow / QA Mask (Sentinel-2 SCL, Landsat QA_PIXEL, spectral tests), Land Surface Temperature, Urban Heat Island.
  • SAR — Speckle filters (Lee, enhanced Lee, Frost, Gamma MAP), linear ↔ dB, multilooking, SAR Flood Mapping, SAR Amplitude Change.
  • Applications — Burn Severity (dNBR classes), Flood Extent, Shoreline Extraction, Forest Loss.
Flood workflowSentinel-2 after the event → Cloud / Shadow Mask (SCL) → Flood Extent with the pre-event image → flood polygons → Spatial Join with villages → publish. Cloudy? Use Sentinel-1 with Speckle Filter → SAR Flood Mapping.

Not built (needs SNAP-class engines): SAR terrain correction / InSAR / polarimetry, hyperspectral target detection beyond RX / SAM, atmospheric correction with radiative-transfer models. Learned extraction on CPU, LiDAR and Sentinel-1 calibration were added later (modules 53, 55, 56). All the rest are plugin candidates.

15After the audit — emerging hot spots, forecasts and better sampling

GeoTee’s tools were compared row by row with ArcGIS Pro, ArcGIS Online and QGIS (see the audit). The first batch of gaps is now built:

  • Emerging Hot Spot Analysis — Gi* for every period of a time series, then the trend of each district’s z-scores: new, consecutive, intensifying, persistent, diminishing, sporadic, oscillating and historical hot / cold spots, styled automatically.
  • Time-Series Forecast — Holt / Holt-Winters per district with validation on the last periods; the forecast periods are added to the series so the Time Bar plays into the future. Cross-Correlation finds which series leads which and by how many periods.
  • Monte Carlo Simulation — uncertainty of any formula of fields (±% or ±sd) → mean, sd, 5–95 % interval and the probability of exceeding a threshold. Spatial Durbin model added to Spatial Regression.
  • Spatially balanced / cluster sampling, Weighted Voronoi territories, Detect Feature Changes between two versions of a layer, Field Engineering (standardise, transform, reclassify, encode) and Convert Coordinate Notation (DD, DMS, DDM, UTM, MGRS — both ways).
Surveillance workflowWeekly workbooks → Time Series → Emerging Hot Spot Analysis for the pattern → Time-Series Forecast for the next 4 weeks → publish with the Time Bar.

16Cartography & geometry (batch 28)

  • Rule-based symbology — Symbology › Primary symbology › Rule-based: a list of definition queries, each with its colour (and size for points / width for lines), first match wins, plus a default. Legend shows the count per rule.
  • Contiguous Cartogram (Dougenik), Thin Road Network, Delineate Built-Up Areas, Shape Buffers (wedge, tapered, rectangle, oval, diamond), Pole of Inaccessibility · Medial Axis — under Geometry.
  • Sky-View Factor and Surface Area Ratio — under Surface.
  • Scanned maps — Add Data › GeoTIFF / imagery now accepts a plain PNG / JPG with its corner coordinates (W, S, E, N); refine with Imagery › Georeference (control points).

17Platform (batch 29) — roles, status, split view, conditional formatting, COGO

  • Custom roles — Project › Roles (admin): a role starts from viewer / editor / admin and switches privileges off (upload, analyse, edit, publish, delete, export, plugins, forms). Assign it in Users; the ribbon hides what the role cannot do and the server refuses it too.
  • Authoritative / deprecated — in an item’s Sharing dialog set its status; the Catalog shows ✔ or ⚠. Only admins can mark items authoritative.
  • Split View — View › Split View: a second map canvas linked to the first; untick layers on the right to compare.
  • Conditional formatting — attribute table › Conditional Formatting: colour rows or one cell by definition queries; saved with the map.
  • COGO Traverse — Geometry ▾: bearings and distances (N45°30'E 120.5 …) from a start point → polyline or closed parcel with misclosure and Bowditch adjustment.

18Extensibility & offline (batch 30)

  • Python Console (plugin) — type Python against the selected layer or raster and get a layer, a table or a message back. Sandboxed (runs as an unprivileged user, cannot read the server configuration), numpy / GDAL / the plugin API pre-loaded. Prototype a tool, then package it as a plugin.
  • External Providers (plugin) — run any SAGA GIS (700+ tools) or GRASS GIS (500+ modules) tool on a layer or raster: choose a preset or type the tool, give its parameters with INPUT / OUTPUT placeholders, get the result as a layer.
  • Circuit-Theory Connectivity — Circuitscape-style current density from a resistance raster and node points (corridors, pinch points).
  • Geoparsing — place names in a text field → points via a gazetteer layer (fuzzy, Somali-aware).
  • GTFS Transit Feed — stops with headways, route lines, and a transit-access score for any layer.
  • Offline map areas — the ⤓ Offline button on any map (editor or published app) saves the current view’s tiles for a zoom range plus the app’s data to the device; open the same page without a network and it loads from the cache.
Plugins to installProject › Plugin Manager › Python Console and External Providers (admin). SAGA / GRASS need apt install saga grass-core on the server — done on geotee.gtdigital.tech.

19Assistant, MCP & semantic text tools (batch 31)

  • GeoTee Assistant — Analysis › Assistant, the ★ button, or Alt+A. Ask about the data on the map (“which district has the highest attack rate?”) or say what to do (“buffer the clinics by 5 km and count villages outside”). It reads the layers before answering, plans tool runs, shows each analysis step as a card — Run, Skip or Open dialog — and reports the result. Styling, selection and zoom happen at once. Command Search offers “Ask the Assistant” for any phrase. Token use is shown under the input.
  • MCP server — api/mcp.php lets Claude Desktop, Claude Code or any agent drive GeoTee with an API key (Profile › API keys): list / describe / query layers, statistics, tool reference, run any analysis tool, list apps. Same permissions as the REST API.
  • Find Similar (text) · Text Clusters — Spatial Statistics ▾: score features by text similarity to a query or a reference feature (sim_score, sim_rank), or group them into themes (text_cluster, cluster_terms). Voyage AI embeddings when configured, else a local spelling-tolerant model.
  • Sign-in history — Project › Users › Sign-in history: every sign-in and failed attempt with IP, approximate place, device; CSV export.
Setup (admin) config.php: "ai" => ["claude_key" => "sk-ant-…", "model" => "claude-opus-5", "effort" => "medium", "voyage_key" => "…"]. Without a Claude key the Assistant pane explains what is missing; without a Voyage key the text tools use the local model.

20Cloud data & connectors (batch 32)

All under Map › Add Data ▾. Every connector takes the current map view as its area by default.

  • Satellite imagery (STAC) — search Sentinel-2, Sentinel-1, Landsat and the Copernicus DEM by area, dates and cloud cover; pick a band preset per scene (true colour, B G R NIR, 6-band, SCL mask, VV+VH) and import only your area, read directly from the cloud. Then Imagery › Spectral Index, Classification, Change Detection work on it.
  • Remote raster (COG by URL) — a window of any cloud-optimized GeoTIFF on the web.
  • OpenStreetMap features — presets (health, schools, water points, roads, buildings, places, boundaries, rivers, lakes, worship, markets, power, refugee sites) or a custom tag filter → point / line / polygon layers. © OpenStreetMap contributors.
  • HDX open data — search by words + country (ISO3) and import shapefiles, GeoJSON, GeoPackage, CSV, XLSX, KML, GeoTIFF from the Humanitarian Data Exchange.
  • DHIS2 — org units of a level → layer; indicators × periods → time series on that layer (Time Series pane, Epi Curve, Forecast).
  • KoboToolbox / ODK Central — form submissions → point layer from the geopoint; refresh in place manually or every N minutes.
  • Data connectors — the list of layers that remember their source: refresh now, see the last run, forget a connection.
Server setup for scheduled refresh add to cron: */5 * * * * www-data cd /var/www/html/geo && php tools/connectors_cron.php. Credentials are only stored (encrypted) when you tick “Save connection”.

21Collaboration & review (batch 33)

  • Comments — Share › Comments or the right-pane tab: threads on the saved map, on a layer, or on one selected feature; 📍 Pin then click the map to attach a place; @username notifies a colleague (bell in the title bar); Reply, Resolve, Reopen. Pins show on the map.
  • Review links — Sharing dialog of an app › New link: stakeholders open /review.php?t=…, give a name and comment with pins — no account, works for private and password-protected apps; you are notified of every reviewer comment.
  • Record verification — Manage › Record Verification adds review fields; the feature pop-up gets ✓ Verify / ✗ Reject; bulk-verify a selection; style by status.
  • Task grid & Task board — split an area into mapping tasks, assign, set status (ready → locked → mapped → validated), track the progress bar.
  • Presence & Activity — “● n here” in the title bar, who is on the same layer in the Contents header, and an activity feed in the Comments pane.

22Epi & sitrep automation (batch 34)

New Analysis › Epi ▾ menu.

  • Epi Week Calendar — date → week and week → dates under ISO / WHO (Mon–Sun) or MMWR / CDC (Sun–Sat); the year’s calendar; add epi_year, epi_week, week_start, week_end to a layer from its date field. The Time Series dialog has the same convention switch.
  • Attack Rate · CFR · Doubling Time — per-feature attack_rate, cfr_pct and, from the time series, latest / previous / change % / growth rate / ts_doubling_days / cumulative, plus a layer summary.
  • Threshold Alerts — rules on the newest period (≥ value, rise ≥ %, minimum), checked every 15 minutes; hits notify (bell), call a webhook, e-mail.
  • Situation Report (PDF) — one click: key figures, current map, epi curve, top-N table, key messages.
  • Epicurve widget — App Builder bar chart of the series per period, filter-aware.

23Tools tab · AccessMod — physical accessibility to health services (batch 36)

The Tools ribbon tab carries the WHO AccessMod 5 workflow, reimplemented on GeoTee’s raster stack (anisotropic least-cost paths, capacity catchments). Run the seven steps left to right:

  1. Merge Land Cover — DEM (grid + slopes) + land-cover classes + roads (by class) + barriers → merged surface + proposed travel scenario.
  2. Travel Scenario — speed (km/h) and mode per class: WALKING (Tobler slope correction), BICYCLING (capped at 2× downhill), MOTORIZED (none); 0 = barrier. Presets and CSV paste.
  3. Accessibility — travel time toward / from facilities, isochrones, population within each band.
  4. Geographic Coverage — facilities in priority order claim population until capacity or max time: catchments, facility stats, unserved raster, served %.
  5. Referral — nearest higher-level facility: minutes, km, routes.
  6. Zonal Statistics — % of each district within 30 / 60 / 120 min.
  7. Scaling Up — best N new sites by unserved population.

Get the inputs from the same tab: DEM / imagery (STAC) — Copernicus DEM 30 m; OSM roads & facilities; HDX population (WorldPop, boundaries). Long runs go through the job queue — press “Run in background” and keep working.

Notes Grid ≤ 4 M cells (coarsened automatically — set the cell size in Merge). Land-cover no-data (sea, lagoon) is impassable; population there is moved to the nearest passable cell. Results carry AccessMod-style fields (am_pop, am_fill_pct, am_max_min, am_reached_capacity, pct_60min …). The Assistant and the MCP server can run the steps as am_merge … am_scaleup.

24Cartography & UX polish (batch 35)

  • My Toolbar — View › My Toolbar or ⚙ in the title bar: tick the commands you use most; they stay one click away on every tab.
  • Analyze Map — View › Analyze Map (✓ in the QAT): a 0–100 performance score with fixes (build tiles, simplify, fewer classes, labels).
  • Smart Mapping — Appearance › Smart Mapping or ✨ in Symbology: ranked renderer suggestions from the data, one-click apply.
  • Layered PDF — Share › Layered PDF: georeferenced PDF with each vector layer toggleable (Acrobat / Avenza / QGIS).
  • Per-frame layers — in a layout, select a map frame or inset and untick layers for that frame only.
  • Extract Scanned Lines / Polygons — Imagery ▾: trace a georeferenced scan by dark ink or a picked colour.
  • Arabic (RTL) — Project › Language › العربية: the whole ribbon and panes mirror right-to-left.
  • Accessibility — icon buttons carry ARIA labels, dialogs are announced, a “Skip to map” link, visible focus rings, reduced-motion respected.

25Tools tab · Microplan — immunisation microplanning (batch 37)

The Tools tab is now one tab: the Toolbox group, AccessMod, the input connectors, Microplan and then every toolset dropdown. Microplan turns the AccessMod outputs into a health-facility microplan (the GEM / Nepal workflow) that stays inside GeoTee.

  1. Org Units — import each level from a boundary or facility layer (country → province → district → municipality → ward → health facility). Children attach to the parent polygon that contains their centroid. Assign users to a unit in Project › Users; they see only plans in their subtree.
  2. Microplans — create one per health facility per fiscal year and open the workspace: 1 Catchments (Geographic Coverage output or wards) · 2 Targets (population per catchment × factors: live births, surviving infants, under-1, 12–23 months, under-5, pregnant women, WRA) · 3 Hard-to-reach (settlements beyond N minutes on the travel-time surface → new layer) · 4 Session sites (fixed / outreach / mobile, sessions per month) · 5 Forms (progress, vaccine ledger, cold chain, session register, high-risk areas — offline at /f/…, QR code) · 6 Indicators & DHIS2 (reported doses vs targets, push as a dataValueSet after a dry run) · 7 Pack (PDF: cover, map, tables, form links, history).
  3. Workflow — draft → submitted → municipality → district → approved, or returned with a reason. Editors draft and submit, a reviewer role reviews, admins reopen (new version). Approval freezes a snapshot of the data and layers; every step is logged and notified.
  4. Dashboard, Indicators registry and Settings (national factors, fiscal-year label — Gregorian or Bikram Sambat — and the workflow itself as JSON).
Microplan targets tab
Targets per catchment from the population layer × national factors.
Notes Targets need a catchment layer first. Hard-to-reach needs an Accessibility (travel-time) raster from AccessMod step 3. The DHIS2 push needs the indicator's data-element uid (Indicators) and the facility's org-unit uid (imported with the org units).

26Trust — data quality, safe publishing, result provenance (batch 38)

Four things that make a result defensible, all in Tools › Trust.

  1. Result Details — every tool answer now shows how this result was produced: each input layer with the exact revision, feature count and CRS that the run used, the parameters, the outputs, run time and the GeoTee / GDAL / PHP versions. Download it as an evidence file, or copy a methods note straight into a report. Nothing is invented: if a method does not calculate uncertainty, none is shown.
  2. Data Quality — six checks (invalid or empty geometry, duplicate identifier, missing required value, value out of range, value not in the code list, coordinates outside the area). Findings go into a queue with severity, assignee and state: open → assigned → fixed → accepted exception. Run the checks again and you are told what is new and what is resolved; accepted exceptions stay accepted. Corrections are made with the usual tools — the pane never changes your data.
  3. Publishing Inspector — before you share, it shows the real audience, every layer with its revision, source and licence, fields whose names look personal, the coordinate precision that would be exposed, attachments that become reachable and any open quality issues. Blocking items are separated from things merely worth a look, and the report downloads for the record.
  4. Operations & Recovery (admin) — worker heartbeat, queue age, failures, disk use, connector freshness, backup sets and the last restore rehearsal (tools/restore_drill.sh on the server restores the newest set into a throw-away database and measures how long it takes and how much data is lost).
Data Quality Center
Rule packs on the left, the issue queue below, with severity, state and assignee.
Also in this release Form submissions are now idempotent — a phone that retries after a lost connection can no longer create a second record — and the offline queue keeps each record's error with retry, discard and export. Maps and apps refuse to overwrite someone else's newer save. A tool that was running while the layer changed underneath it is refused and its output kept for review. Tiles and imagery are served through GeoTee's own access check instead of public file addresses, and maintenance scripts are no longer reachable from the web.

27Change control — review, propose, roll back, stage imports (batch 39)

Four things that make a change to your data answerable, in Tools › Change control.

  1. Change Review — every snapshot of a layer, and a comparison of any two of them feature by feature. Each feature is matched by its stable id, so re-ordering is not mistaken for editing: you see what was added, what was removed, which attribute changed from what to what, and which columns appeared or disappeared. Geometry that only changed type (Point → MultiPoint, which is how an in-place tool rewrites a layer) is reported as re-encoded, not as a move. Download the comparison as CSV.
  2. Proposed changes — edits can be proposed instead of written. The layer does not change until someone who may edit it approves; approval applies the whole set as one revision, and returning it needs a reason. A proposal made against an older revision is flagged so it is compared first.
  3. Roll back — restores an earlier version as a new revision. The state you rolled back from is snapshotted first, so the rollback itself can be undone.
  4. Import Staging — an incoming batch is reconciled against the target before anything is written: new, changed, unchanged, records the batch no longer carries, columns added or missing, duplicate keys, and records that cannot be used (no key, impossible coordinates) with the reason. Promote in update mode (add and update, leave the rest alone) or replace mode (also delete what is missing). Importing the same batch twice is safe.
Import staging report
The reconciliation report — nothing is written until you promote.
Also in this release Each page sends its own Content-Security-Policy with a one-time nonce and the map libraries carry integrity hashes, so a modified file at the CDN will not run. Dependencies are pinned in deploy/DEPENDENCIES.md and tools/check_deps.sh checks a server against them. A long tool run no longer freezes your other requests, webhooks no longer hold a request open, and the job worker recovers a crashed run at once instead of leaving it "running".

28Honest numbers, a usable phone, and what leaves the server (batch 40)

  1. What a number was measured in — a layer that fits inside one UTM zone is measured in that zone; a wider one (or one crossing the date line, or reaching the poles) is measured in an equal-area projection centred on it. The result says which, and how much distances stretch away from that centre. You can force a projection with analysis_crs when your organisation has an official one.
  2. Interpolation says what it did — the raster always covers every input point, and if the solver had to work from a sample of them it tells you how many of how many. Where it is affordable, each point is predicted from the others and the measured error is reported. No invented confidence figures.
  3. An acceptance suite with known answers — tools/accept_numeric.sh checks GeoTee against facts that do not come from GeoTee: a 1 km buffer is π km², one degree of latitude is 110.574 km, the mean of a constant raster is that constant, a 10 % plane has a 10 % slope, MMWR week 1 is the week containing 4 January, an hour's walk at 5 km/h covers 78.5 km².
  4. What leaves the server — the Assistant states it on first use: your question, the layer list with field names, and tool results. Your administrator can switch attribute values off, cap the rows and redact personal-looking fields; whatever was withheld is reported back to you. Sign-in history no longer sends addresses anywhere unless you press the button that says it will.
  5. Keyboard and screen readers — the catalog, contents, toolbox and history are proper trees: arrows move, Enter opens, Left/Right collapse and expand, Home/End jump, typing a few letters jumps to a name, and the focused item is announced. Dialog fields and the sign-in form have real labels; errors are spoken.
  6. On a phone — the panes become drawers over a full-width map with a bottom bar: Layers, Catalog, Tools, Table, Map. Authoring is still a desktop job, but viewing, the attribute table, field forms and the microplan workflows now fit a 390 px screen.
  7. Catalog cleanup — Project › Catalog cleanup lists what looks like clutter with the reason, and lets an administrator label it a sample, archive it, or move it to the trash. Nothing happens automatically, and a layer an app still uses is never trashed.
GeoTee on a phone
390 px: full-width map, drawers, bottom bar.
Faster to open The script stack is deferred and the PDF library loads only when you export something: the workspace is ready in about 2.8 s instead of 5.5 s on the same server.

29Workflow designer — analysis you can run again (batch 41)

Tools › Workflow Designer turns a piece of analysis into a graph you can keep: each box is one GeoTee tool, an arrow carries a layer from one step into a parameter of the next, and you decide which inputs the model should ask for when someone runs it.

  1. Add steps — search the 280 runnable tools and drop them on the canvas. Drag boxes to arrange them.
  2. Wire them — drag the green dot on a step onto another step, and its output becomes that step's input layer. The properties pane on the right shows every parameter of the selected step, with layer parameters offering the model's inputs and the other steps' outputs.
  3. Declare the inputs — Inputs the model asks for…: a key, a label and a kind (vector, raster, number, text, yes/no). Steps refer to them as $in:key.
  4. Check — before anything runs, GeoTee reports a raster tool fed a vector layer, a step reading an output that does not exist, an undeclared input, or a loop, naming the step that causes it.
  5. Save and run — running asks only for the declared inputs, then executes the steps in the graph's own order through the normal tools: the same permissions, the same job queue, the same provenance. Each line of the log says what the step produced; if one fails, the model stops there and the earlier results stay.
  6. Versions — every save keeps the previous graph, and restoring an older one writes it as a new version.
Workflow designer
Two steps wired together, the parameter pane on the right, the wiring check below the name.
Older models A chain recorded with History & Models › Record model opens in the designer as a graph — nothing saved before this release is lost.

30Scenarios — compare a baseline with alternatives (batch 42)

Tools › Scenarios answers "what changes if…": today's clinics against two new ones, a 5 km against an 8 km travel assumption, last year's coverage against this year's. Every scenario is a frozen copy of a result, so the comparison you show on Monday still holds after someone edits the data on Tuesday.

  1. Make a set — name it, say what is compared, and define the indicators once (for example "people covered = sum of covered", "area within reach"). For per-district tables pick a key field and a value field.
  2. Capture — run your tool, then Capture a layer as a scenario. The run that made the layer is recorded automatically; add what the tool cannot know (population source, travel speed) and mark each as input data or method. State the reporting period.
  3. Compare — GeoTee first checks the pair: same geography, same geometry, the fields exist, rasters on the same grid (or an explicit alignment step you switch on), same reporting period. Then it says what changed and whether the difference comes from the data, from the method, or cannot be attributed because both changed.
  4. Read the table — change = alternative − baseline; % change = change ÷ baseline. Where the baseline is 0 the % is left blank, because it is undefined. Units come from the set's definitions, so they always match.
  5. Map it — Side-by-side maps move together and use one legend; Difference layer adds a layer whose metadata names both scenarios.
  6. Sensitivity — Sensitivity run repeats the last tool with one parameter changed over a list of values, so you can see how much the answer depends on it.
Scenario comparison
Coverage 2024 vs 2025: the period warning, what changed, the indicator table and the per-district changes (D1 has no % because its baseline is 0).
Side-by-side scenario maps
Both scenarios with one shared legend; each map links to its assumptions.
Comparable, not identical A warning does not stop the comparison — it travels with every number. Read it before you quote a change.

31Imagery catalog — find, preview, import (batch 43)

Tools › Imagery Catalog keeps every satellite image you find in one catalog, with what you need to judge it: when it was taken, by which satellite, how cloudy it was, its resolution, its bands, who produced it and under what licence.

  1. Search — move the map to your area, choose a provider (Earth Search, Microsoft Planetary Computer, or another STAC address), a collection such as sentinel-2-l2a, the dates and a cloud limit. The footprints appear on the map; hover a row to highlight its image.
  2. Preview — shows the image at full detail without downloading it: GeoTee reads only the small pieces the screen needs. A preview is for looking, not measuring — analysis tools refuse it.
  3. Import… — zoom to your study area (up to about 3,000 km²), pick the bands (presets for true colour, NDVI, colour + NIR, SWIR) and import. The values are kept exactly as the provider stores them; Details shows the scale and offset to convert them.
  4. Imagery Source — for any imported raster: which image, which exact files, which version, which window and which steps produced it. It still answers after the catalog is refreshed, even if the provider has since changed or withdrawn the image.
  5. Tile Release — packages a raster into one read-only file for apps that must not change.
Imagery catalog
18 Sentinel-2 scenes for Batticaloa with cloud, resolution, bands, licence and status.
Imagery source
An imported red + NIR layer names its scene, the exact files and every processing step.
When an image cannot be read GeoTee says why — an expired signed link, a file the provider removed, or a provider that is down — and imports nothing.

32Guided workflows — flood impact assessment (batch 44)

Tools › Guided Workflows walks a whole task step by step. Each workflow tells you before you start what data you need, what it assumes, and exactly what you will be able to share. The step list shows ✓ done, ⚠ done with a caveat, ○ still needed — and nothing can be published until the required steps are done.

  1. Area and time — zoom to the affected area (or pick a boundary), give the event dates and a normal (dry) period.
  2. Event image — press Find the clearest Sentinel-2 image, or choose any image in the Imagery catalog (radar sees through cloud). Then Detect water; the rule it used is written down.
  3. Baseline image — the same for the dry period, so rivers and lagoons that are always there are not counted as flood.
  4. Flood extent — water now that was not water then, as polygons. You can also use an extent mapped by Copernicus EMS or UNOSAT.
  5. Review — look at the polygons over the image, tick those that are not flood, drop specks, exclude areas on purpose, write a note and confirm.
  6. Exposure — population, facilities and roads inside the extent. These are exposure figures, not counts of affected people.
  7. Publish — read the draft summary, then publish. The published copy is dated and never changes; a correction is a new run.
Flood review step
Reviewing the extent: tick polygons that are not flood; every removal is recorded.
Published flood impact summary
The published summary: headline figures, imagery provenance, the rules used, the review and the checks.

33Guided: surveillance investigation and field survey (batch 45)

Surveillance investigation takes a dated case list from import to a release your colleagues can use. It asks which fields hold the onset date and the area code, then works through: codes that match no area (with suggestions you accept one by one), late and missing reports, the epi-week calendar, indicators, unusual weeks, and the release. Counts, rates and completeness are always shown apart. The case-level map stays private; the area totals — with small numbers hidden — are shared only after a second person approves them. It is an analytical workflow, not a clinical diagnosis.

Reconciling area codes
Codes that match no area, with a suggestion and the reason for it — nothing changes until you press Apply.
Indicators kept apart
Counts, rates and completeness in separate boxes; a CFR from fewer than 20 cases is marked.

Field survey prepares a team and checks what comes back: the approved form version, the area each phone downloads, task cells for each enumerator, one phone tested end to end before anyone goes out, progress, submissions the server refused (each must be marked corrected or dismissed), flagged records, and finally only the verified records written into the dataset as a new revision.

Device test
The test record from the phone: pick it, and GeoTee shows each stage it passed.

34Assistant safeguards (batch 46)

The Assistant proposes; you decide. Every analysis it suggests is shown before it runs. If you switch on automatic runs, three kinds of step are still shown first: steps that change a layer you already have, expensive raster / network / accessibility runs, and anything proposed after the data itself tried to give the AI instructions.

Layer names, field names, attribute values and tool results are treated as data. If any of them reads like an instruction to the AI — “ignore previous instructions”, “delete all layers” — GeoTee tells you, and the Assistant is told never to act on it.

Injected layer name
A layer name that tries to instruct the AI: GeoTee warns, and the destructive step a fooled model proposes waits for you — with the reasons.

Steps the AI proposed stay marked: an AI-proposed tag and an Evidence button on the result (inputs, versions, parameters, and who proposed and ran it), and an AI badge in the geoprocessing history. Ask it for a repeatable workflow and it drafts one that opens, unsaved, in the Workflow designer.

AI badge in the history
AI-proposed runs in the history, with the request that led to them on hover.

35Export — know what the format keeps (batch 47)

Export now builds the file, opens it again and tells you what the format kept and what it lost — before you download. A Shapefile cuts field names to 10 characters and text to 254, and holds one kind of geometry; GPX holds points and lines only; CSV with X/Y keeps points only. You see each of these as a line in the report, with the number of records affected.

  • Strict — tick it and GeoTee will not give you a file that lost records, geometry or text; it offers the records that did not make it instead.
  • CSV with WKT — every kind of geometry as text, holes and multipart features included.
  • GeoPackage — tick several layers to put them in one file, with a table describing each.
  • Rasters — exported from the stored values and checked after export; PNG and JPEG are marked as pictures because their values are stretched.
Export report
Shapefile: 1 of 3 records written, two field names cut, a long note truncated — with a link to the records not exported.
Strict mode
Strict mode refuses the GPX file and offers the three records it could not hold.

36More formats in (batch 48)

Add Data now reads AutoCAD DXF drawings, GeoParquet, zipped File Geodatabases, GML, zipped MapInfo, TopoJSON, and CSV files with the geometry in a WKT column.

A drawing has no coordinate system, so GeoTee asks for one — and first shows you what is in it: the drawing units (with a warning if they are not metres), each CAD layer, which you can untick, and anything it could not translate. Labels come through as text, in any script.

DXF import
A site plan in millimetres: three CAD layers to choose from before choosing the coordinate system.

37Field mapping and append / upsert (batch 49)

Tools › Field Mapping turns someone else's columns into your schema — names, order, types, defaults, required fields — and shows every problem on a preview before anything is written: values that are not numbers or dates, IDs like 0012 that would become 12, empty required values. Save it once; use it again on next month's file and get exactly the same schema.

Tools › Append / Upsert brings a batch into a layer through staging: you see new, changed, unchanged and duplicate records first. Choose upsert, update only, replace, or append only (no key — the same batch can never be added twice). Sending the same file again changes nothing and writes no new version.

Field mapping preview
The preview: leading zeros that would be lost, a value that is not a number, and the converted rows.
Upsert
A weekly batch reconciled: one new, one changed, a duplicate key (the last copy is used) — nothing written yet.

38Processing environment and tool registry (batch 50)

Tools › Processing Environment sets one grid for all raster work: CRS, cell size, a snap raster, the map view as extent, a polygon mask, NoData, resampling and a random seed. While it is on, the status bar shows Env: name, and every raster tool first puts its inputs onto that grid. The result's manifest says what was done to each input. Save an environment once and the whole team can use the same one.

Even with no environment, tools that combine rasters cell by cell check that every input is on the same grid as the first. If one is not — a different CRS, a different cell size, or cell edges 45 m apart — it is aligned and you are told. Tick Strict to refuse instead. Classes (land cover, SCL, classification outputs) are never blended: they always use nearest neighbour.

Tools › Tool Registry lists every tool and plugin and the engines behind them (hydrology, routing, Python libraries, GeoParquet, the Assistant), each with a green or red light and the fix. A tool whose engine is down tells you before it runs.

Processing environment
A 100 m UTM grid snapped to a Sentinel-2 raster, with the map view as extent and seed 42.
Tool registry
Engines with their versions, and every tool with what it needs.

39Batch convert and boundary reconciliation (batch 51)

Tools › Batch Convert takes many files at once — import them as layers or convert them to another format. Each file gets its own line: an estimate when you add it, then its status, its result and its warnings. A broken file is refused with the reason; the others carry on. A file without a coordinate system waits for one, and Retry runs just that file again without making a second copy. The original files stay on the server until you press Accept.

Tools › Boundary Reconcile finds overlaps and gaps between administrative units and turns each one into an issue linked to the two units involved. Take it, preview a repair (only those two units change, and the checks are shown), let a colleague approve it, then Apply: GeoTee writes a new version and checks the whole layer again. If anything else changed, it puts the old version back. The Boundary versions tab shows how old units map to new ones (split, merged, renamed…) and carries population or case counts across.

Behind the scenes a conformance run tests every tool against data with known answers. The Tool Registry shows which tools passed a known-answer check, which only a basic run, and which failed, together with the version tested.

Batch convert
A batch of district files: imported, refused, waiting for a coordinate system — each with its own result.
Boundary reconciliation
An overlap between two units, with the proposed repair and its checks.

40Inward and geodesic buffers, coverage simplify, reshape (batch 52)

Buffer now takes a negative distance: polygons shrink inward (setbacks, core areas). A polygon thinner than twice the distance disappears — the result tells you how many, and can keep them without geometry. Corners and line ends can be round, sharp or flat.

Geodesic Buffer is now true on the ellipsoid for lines and polygons too, not only points, and every result says how close its edge is to the distance you asked for.

Coverage Simplify simplifies neighbouring units together, so they still meet exactly — Simplify on its own leaves slivers and overlaps between districts.

Reshape turns year columns into rows and back again, without adding anything up.

Inward buffer
Buffer with a negative distance, sharp corners, and collapsed features kept.
Coverage simplify
Two districts simplified together: one shared border, no gaps.
Reshape
Reshape: year columns into rows.

41Conversion: scientific data, tile packages, datums, Z/M, KMZ (batch 53)

Tools › Scientific Data opens netCDF, HDF, GRIB and Zarr files. You see each variable, its time steps (with the file's calendar), levels and units, then add one variable at one time and level to the map. Scale, offset and missing values are applied for you.

Tools › Datum Transform moves coordinates between datums with an operation you can see — its accuracy, where it applies, and whether a grid file is needed. Use it for old Kandawala data, or to turn GPS heights into heights above sea level.

Tools › Tile Package makes MBTiles or PMTiles of your own layers for offline tablets, and converts between the two. Z / M Values handles heights and route measures. Export › KMZ now carries your colours, symbols and photos inside the file, so it opens in Google Earth with no internet.

Scientific data
A netCDF file: one variable, its noleap calendar dates and pressure levels.
Datum transformation
The operations PROJ offers for this area, with accuracy and grids.
KMZ export
Export to KMZ with placemark names and photos.

42Virtual mosaics, routing with time windows, workflows that decide (batch 54)

Tools › Virtual Mosaic joins raster tiles into one layer without copying them. Vehicle Routing now takes time windows, service times, shifts, pickups paired with deliveries and several depots — a visit that cannot be made is listed with the reason instead of being squeezed in.

In the Workflow Designer a step can run only if a condition holds (for example "if the previous step found more than 100 features"), can repeat for every layer in a list, and a later step can take whichever branch ran. Models can now use AccessMod and the connectors (OpenStreetMap, HDX, COG) directly; other endpoints are refused.

Workflow designer
A step with a condition and a step that repeats for each layer.
Workflow run
The run: two buffers from the repeat, one branch skipped, the other used.
Vehicle routing constraints
Vehicle Routing with time windows, service times, shifts and pickup–delivery pairs.

43Field sync — nothing collected is lost (batch 55)

On a public form, every record stays on the phone until the server has confirmed it and each photo. The Sync center at the top of the form shows each record's state: Waiting (offline or the server is unreachable), Sending…, Saved — photos sending, Rejected (with the reason and Retry / Discard) or Conflict. Each photo has its own progress bar. If the connection drops halfway, only the photos not yet confirmed are sent again; a record or photo is never saved twice.

A conflict means someone else changed the record after you opened it. The form shows both versions side by side, with the differences highlighted. Choose Keep mine to overwrite or Discard mine. If the form owner changed the form while your record was waiting and it no longer fits, it is marked Form changed: fill it in again or Export it for the owner. Export saves every unsent record, photos included, as a file. The half-filled record is kept as a draft if the tab is closed. What is kept on this phone? explains what is stored and shows how full the storage is.

In GeoTee, Tools › Field Sync lists what is still waiting in this browser. Signing out names any unsent records first.

Offline record
Offline: the record and its photo wait on the phone.
Conflict
A conflict: the server's version and yours, with Keep mine / Discard mine.
Sync center on a phone
On a phone: one record and two photos waiting.

44Workspaces, phones and the keyboard (batch 56)

The workspace button in the title bar chooses Field collector, Reviewer or Analyst. A workspace puts one job's tasks first and hides the ribbon tabs that job does not need. Nothing is removed: Actions (Alt+A) searches every tool.

On a phone the bottom bar's Actions opens a list you can search. Only one panel is open at a time. A green dot means online; amber means offline. A number means field records are still waiting in this browser; tap it to see them.

Keyboard: Esc closes what is open and returns you to where you were. Tab stays inside a dialog. F6 moves between the ribbon, contents, map, catalog and table. An error stays in a red bar until you dismiss it, and screen readers announce it. Selection as Table lists the selected map features as a table.

Actions on a phone
Actions on a 390 px phone (Field collector).
Workspace chooser
Choosing a workspace.
Selection as table
Selected features as a table, with Tamil and Sinhala names.

45Who may run what — the operation registry (batch 57)

Every tool is listed with what it needs and what it may change. Open Tools › Tool Registry: the Access column shows the role and privilege, and whether the tool writes a new layer, changes its input, changes it only when “in place” is ticked, or only reads. The server checks every run against this list, whether it comes from the browser, an API key, the job queue, the Assistant or a workflow. An operation that is not on the list is refused.

If someone shared a layer with you as view only, tools that change it are refused before they run. Run them on a copy, or ask the owner for edit access. Tools that write a new layer work as usual. When an administrator disables an account, changes a role, or someone revokes a key or a share, it takes effect on the very next request. A job that was waiting in the queue is checked again when it starts.

46The dataset catalog and lineage (batch 58)

Tools › Dataset Catalog lists every dataset you may see, with owner, source, licence, sensitivity, coordinate system, last update, how often it should be refreshed, and quality status. Use Edit record to fill these in. Approved remembers exactly which revision was approved. A dataset marked restricted or confidential cannot be published on a link or in public.

Lineage shows how a result was made: each tool step with its parameters, back to the source data, naming the exact revision of every input. If an input has changed since, the step says changed since: used rev 1, now rev 2, and the dataset is badged inputs changed. A source past its refresh date is badged refresh due. These badges only warn: nothing is recomputed or changed until you re-run the step. Search never finds datasets you are not allowed to see.

Dataset catalog
The catalog with sensitivity, refresh and quality badges.
Lineage
Lineage of a catchment: dissolve ⇐ buffer ⇐ source, with the changed input marked.

47Geometry by expression, TopoJSON and MapInfo (batch 59)

Tools › Geometry by Expression makes a new shape for each feature from a formula. For example ST_Difference(ST_Buffer(geom, 100), ST_Buffer(geom, 50)) makes a ring 50–100 m around each well, and ST_Buffer(geom, "radius_m") makes a buffer sized by a field. Pick an example to start from, choose the output type and press Preview to see the first results without creating anything. The run stops and tells you why if the results are of the wrong type, invalid (tick Repair to fix them) or would merge features together.

The Export dialog now offers TopoJSON. Borders shared by neighbouring areas are stored once, so web maps that simplify the file keep neighbours touching. MapInfo MIF/MID and TAB export and import keep Tamil and Sinhala text; empty text values come back as empty strings, because MapInfo has no "no value" for text.

Geometry by Expression
Preview of rings 50–100 m around wells: type, validity and area for each result.

48Kriging with uncertainty (batch 60)

Tools › Kriging + Uncertainty makes two layers: the predicted surface and its standard error. Read them together: the prediction is trustworthy where the standard error is small, near the measured points, and only a guess in the gaps. The chart shows the variogram, which describes how quickly values stop resembling each other with distance. Dots are measured pairs (bigger dot, more pairs) and the line is the fitted model.

The table checks the result. Every point is predicted from the others: an RMSSE near 1 and a 95 % coverage near 0.95 mean the standard error tells the truth. If the ranges in different directions differ a lot (ratio above 1.5), the surface changes faster one way than the other, and the error is understated in that direction.

Kriging with uncertainty
Rain gauges: variogram, validation and the two layers.

49Solar radiation (batch 61)

Tools › Solar Radiation estimates how much sunshine energy reaches each place on a DEM under a clear sky, in kWh/m² for a day, a month or a year. Hills cast shadows, and slopes facing the sun get more, so the map shows which fields, roofs or hillsides are sunniest. A year takes a few minutes and runs in the background.

It is a clear-sky estimate: clouds are not included, so real energy is lower, often by a fifth or more in the monsoon months. Use it to compare places and orientations, not to promise what a solar panel will produce.

50Flow accumulation with multiple directions (batch 62)

Tools › Flow Accum. (MFD) shows where rainwater would gather. Unlike the classic method, which sends all of a cell's water to one neighbour, these methods share it among every lower neighbour. On a smooth hillside water spreads out, and the map shows it as a soft fan rather than artificial straight lines. FD8 and MD-infinity are good general choices.

This is a screening map of the land surface. It does not tell you how much water flows or when: rainfall, soil, rivers and floods need hydrological and hydraulic models that are calibrated against measurements.

51Bus and train journeys, and turns (batch 63)

Tools › Transit Journey plans a trip on a bus or train timetable (a GTFS feed you imported). Choose the timetable, click the start and destination on the map, set the date and time, and press Plan. The answer lists each option with the walk to the stop, the bus to take and when, where to change, and when you arrive. It follows the feed's calendar, so a public holiday or a weekend can have no service. Walking distances are estimates (straight line × 1.3), so check long walks on the map.

When you route on your own road layer, open Turns to add a delay for right or left turns (in Sri Lanka a right turn crosses the traffic), or draw "no turn" lines. Draw each line from the road you come from, through the junction, onto the road you may not enter.

52Multiscale GWR (batch 64)

Tools › Multiscale GWR asks, for each explanatory variable, over what distance its relationship with the outcome holds. Suppose you are explaining malaria cases by rainfall and distance to a clinic. MGWR may find that rainfall works the same way everywhere (a global bandwidth) while the effect of distance changes from one DS division to the next (a local bandwidth). Plain GWR would force both to the same scale.

Check three things in the result. First, the AICc comparison: is MGWR really better than one ordinary regression? Second, the significance columns, which already allow for running a test at every feature. Third, the condition number: above 30, two variables are too alike there to tell apart.

53LiDAR point clouds (batch 65)

Tools › Point Clouds takes LAS or LAZ files from a LiDAR survey or a drone. The summary shows how many points there are, how dense they are and what classes they carry. Make DEM gives the bare ground (good for slopes, drainage and flood work); Make DSM gives the surface with roofs and trees (good for solar and visibility work). If the file is not classified yet, Classify ground first. Preview on map shows a sample of the points coloured by class.

54Meshes from flood and coastal models (batch 66)

Tools › Meshes opens results from models that work on triangle and square meshes: a .2dm with its .dat files (zip them together), or a UGRID .nc. Give the coordinate system, then choose a dataset (water depth, velocity…) and a time step. You can make a map layer of the mesh, a raster, or a table of how the value changes over time at chosen points. The check line tells you if the mesh has broken faces.

55Radar and satellite products from the source (batch 67)

Tools › Sensors › Sentinel-1 Calibrate takes a Sentinel-1 GRD product, the zipped .SAFE folder from the Copernicus Data Space, and turns it into radar backscatter you can compare between dates. The upload goes in parts, so a 1–2 GB product is fine. Choose σ⁰ (the usual choice), noise removal, how many looks to average and dB. The result is placed on the map but is not terrain-corrected: in hills, use an analysis-ready (RTC) product instead.

Reflectance Scaling converts Landsat Collection 2 Level-2 and Sentinel-2 bands from the stored whole numbers to real reflectance (0–1) or temperature. For Sentinel-2, say whether the product is from 25 January 2022 or later (processing baseline 04.00): those need the −1000 offset.

Sentinel-1 calibration dialog
A Sentinel-1 product calibrated to σ⁰ in dB.

56Teach the map to find things (batch 68)

Tools › GeoAI › Learned Extraction learns to find one kind of object (buildings, fish ponds, greenhouses…) from examples you draw. Draw a polygon around every such object in one part of the image. Optionally draw that part as a training-area polygon. Then run the tool. It trains a small neural network on the server for a few minutes, scores it on parts of the area it never trained on, and compares it with a simpler random-forest method. Read the message: if the network is not clearly better, or it warns of over-fitting, add more varied examples.

Apply Model runs a saved model on another image with the same bands and a similar pixel size. Check a few results against reality before trusting the new image.

Learned extraction result
Buildings extracted by a CNN trained on labelled polygons, with the probability layer below.

57Publish a fixed version — releases (batch 70)

When you publish a map or app, viewers now see a release: the data and layout as they were at that moment. You can keep editing inside GeoTee and nobody outside sees half-finished work. When you are ready, open Share › Release and versions, press Prepare a new release, and check the list. It shows what changed since the last release and which fields will be published; fields that look personal are ticked to be left out. Then press Release to viewers. If something is wrong, make an earlier release active again. Forms always stay live, and you can switch a dashboard to live data if it must update by itself.

Scheduled downloads from Kobo, ODK, DHIS2 or OpenStreetMap now pass through Staging. A normal update is applied by itself. An unusual one is held for you to review, and you get a notice — for example when many records disappear or a column goes missing.

58Drone surveys and how accurate they are (batch 71)

Process your drone photos on a computer with WebODM or OpenDroneMap. In WebODM choose Download Assets › All Assets, then open Tools › Photogrammetry › Drone Surveys and upload that zip. GeoTee makes the orthophoto, the surface and terrain models and the point cloud into layers. A big survey takes a few minutes; the list updates itself.

To know how accurate the result is, you need checkpoints: points measured with GNSS or a total station that were not used as ground control. Read the same points off the orthophoto. Upload both lists as CSV in their survey coordinates, for example SLD99, EPSG 5235. Press Check accuracy. You get the error at every point and the 95 % accuracy, horizontal and vertical, the way survey standards (ASPRS / NSSDA) report it. Use at least 30 checkpoints spread over the whole area.

Checkpoint accuracy result
Horizontal and vertical accuracy from 12 checkpoints, with the error at each point.

59Rules the data must follow — domains and subtypes (batch 72)

In Item page › Fields you can give a field a list of allowed values (coded) or a minimum and maximum (range), and mark fields as required or unique. These rules are now checked by the server for every edit and every form submission, whoever sends it. A save that breaks a rule is refused with a list of what is wrong, and nothing is half-saved.

Subtypes split a layer into kinds, for example hospitals and clinics in one facilities layer. Pick the field that holds the kind. For each kind, give default values that new features get automatically (e.g. beds = 50). You can also give narrower allowed values (e.g. clinics: beds: 0..20).

Subtypes panel
Hospitals get 50 beds by default; clinics may have at most 20.

60Forms that repeat and calculate (batch 73)

In the Form Designer, a question can now be a repeat group: a list the surveyor fills as many times as needed, such as the members of a household, each with name, age and sex. Write one sub-question per line (age | Age | number) and set the least and most entries allowed. A question can also be calculated from other answers, such as adults + children or round(avg(members.age), 1). The surveyor sees the result update while typing, and the server works it out again when the record is saved.

Form with a repeat group and calculated questions
Household size and average age are calculated; members are a repeat group.

61Watch your data change over time (batch 74)

Any layer with a date field — survey date, onset date, inspection date — can now be played through time. Select it and press Time Bar, or right-click the layer and choose Time slider. Choose the date field and a step (day, week, month or year). Then show that period only or everything up to it, and drag the slider or press ▶. Records without a date are counted separately, and closing the slider shows the whole layer again.

Time slider
Visits up to June 2025, month by month.

62Charts next to the map (batch 75)

Tools › Charts, or right-click a layer › Chart…, opens a chart beside the map. A bar chart counts or sums by category, a histogram shows how a number is spread, a scatter compares two numbers and gives their correlation, and a box plot compares groups. Click a bar to select those features on the map. Tick selected only to chart just what you have selected.

Charts dock
Facilities by district; clicking Batticaloa selected its 12 facilities.

63Raster utilities (batch 76)

Tools › Raster utilities holds seven tools:

  • Colour Relief colours a DEM with a colour ramp. In exact mode it colours class codes such as land cover.
  • Constant Raster and Random Raster make test, simulation or base rasters over any area. Random rasters come from 9 distributions, and a seed makes them repeatable.
  • Remove Collar makes the black edges of scanned or rotated maps transparent.
  • Raster Footprints draws where each raster lies.
  • Palette ↔ RGB converts between colour-table and full-colour images.

64Audit a facility list (batch 77)

In the Data Quality Center, choose the field that holds each facility's unit code (district, DS division, health area), the layer with those units, and the units' code field. Press Facility audit. It finds facilities placed outside their own unit, telling you which unit they really fall in. It also finds unknown or missing codes, and the same facility entered twice — names like "Base Hospital Kallady" and "Kallady Base Hospital" within 100 m of each other. Every finding goes into the issue queue to be assigned, fixed or accepted.

65Put a list of places on the map (batch 78)

Tools › Geocoding › Geocode Table gives locations to a table of addresses or place names. Matching against your own list of named places, such as GN divisions with their DS division, is most reliable. It copes with small spelling differences and keeps two villages with the same name apart. OpenStreetMap can also be used, slowly, for place names. Every row says whether it matched, how well, and to what. Rows that did not match are kept so you can fix them. Reverse Geocode does the opposite: it names points from the area they fall in or the nearest place.

66Filter by size — Fourier and wavelets (batch 79)

Tools › Frequency › Fourier Filter separates a raster into patterns of different sizes on the ground:

  • Low-pass keeps the regional picture.
  • High-pass removes regional trends to show local detail.
  • Band-pass keeps one range of sizes.
  • Remove stripes cleans scan-line striping.

Wavelet Filter removes noise while keeping sharp edges.

67Spectral libraries — match an image to known materials (batch 80)

Tools › Spectral › Spectral Libraries keeps reference spectra: what each material reflects at each wavelength.

  • Import a CSV: wavelength in the first column, one column per material.
  • Sample spectra from your own image at a point layer of known places (field-checked crops, water, soil).
  • Resample a lab library to Sentinel-2 or Landsat bands before matching broad-band images.
  • Continuum removal makes absorption features stand out as dips below 1.

Classify by Library labels each pixel with the closest spectrum. The Spectral Angle Mapper compares the shape only, so a shaded field and a sunlit field of the same crop get the same label.

68Nepali and Somali interface (batch 81)

Account › Language now offers नेपाली (Nepali) and Soomaali (Somali) next to Tamil, Sinhala and Arabic. The ribbon, panes and common messages switch at once, and the choice is saved with your account. Tool dialogs stay in English so they match the Tool Reference.

69WCS — raster values from other servers, and to them (batch 82)

Add Data › Web services › WCS reads a Web Coverage Service: enter its address, pick a coverage, choose the current map view or the whole coverage. Unlike a WMS picture, the layer keeps the real values (elevation, rainfall, reflectance), so you can analyse it.

GeoTee also serves your rasters as WCS 2.0.1 at /api/wcs.php. In QGIS: Layer › Add WCS Layer, with an API key from Account › API Keys sent as the header Authorization: Bearer ….

70GeoTee Desktop — run heavy tools on your own PC (batch 83)

Some jobs are too big for a shared server. GeoTee Desktop is a Windows program that runs them on your own computer, with the same code as the server, so the results are the same.

  1. Install it (GeoTee-Desktop-Setup.exe). It needs no administrator rights and no graphics card.
  2. Make a write API key in Account › API Keys. Paste the GeoTee address and the key into GeoTee Desktop, then press Save and connect.
  3. In a supported tool (Fourier filter, wavelet filter, Classify by spectral library) choose Run on: My PC. The result appears on the map as usual.

Tools › PC › GeoTee Desktop shows your PCs and whether they are online.

≡Reference and glossary

Keyboard

Ctrl+SSave the map or appEscClose a dialog, cancel a sketch or measurement
DeleteRemove the selected widget (App Builder)Shift+clickAdd to the selection

Supported formats

Shapefile (zipped) · GeoJSON · KML / KMZ · GeoPackage · GPX · CSV / XLSX with coordinates · FlatGeobuf · XYZ tile services · WMS · ArcGIS REST FeatureServer layers.

Glossary

LayerOne dataset — a set of points, lines or polygons with a table of attributes.
FeatureOne row of a layer: a single district, road or well, with its shape and attributes.
Attribute / fieldA column in the layer's table (name, population, status…).
Coordinate system (CRS)How coordinates map to the Earth. WGS84 = latitude/longitude used by GPS and the web. SLD99 / Kandawala = Sri Lanka's national grids in metres.
BasemapThe background map (streets, light gray, satellite).
ChoroplethAreas coloured by a value in classes — what Graduated Colors makes.
WidgetOne building block of an app (map, legend, chart…).
Data sourceA layer as seen by the widgets of an app; filters and selections on it are shared by all widgets.

✓Completion checklist

A trainee has completed the course when they can do all of the following without help:

  • Sign in, describe the four areas of the workspace and switch basemaps
  • Upload a zipped shapefile and a CSV, and explain what to do when the CRS prompt appears
  • Open the attribute table, filter it, select a row and export CSV
  • Apply Unique Values and Graduated Colors symbology and add labels
  • Run Buffer and Spatial Join and interpret the result layer
  • Add a feature, edit its attributes, save, and restore a version
  • Build an app with map, legend, filter, chart and table on two pages
  • Publish with a link and a password and open it from another device
  • Select by attributes, join a CSV, calculate geometry, export a Shapefile in SLD99
  • Upload a GeoTIFF, produce an A4 print layout, create a collection form and submit from a phone