OvitalMap Parcel CSV
Convert parcel boundaries into OvitalMap-compatible CSV files, assign stable parcel codes, and maintain deduplicated country and master archives. Use for WGS84, DMS, or UTM coordin…
Jérôme Xinglin QIAN
@jeromeex
What This Skill Does
Generates and archives Ovitalmap parcel vertex/boundary CSVs from user-provided coordinates or images. Handles coordinate conversion (decimal, DMS, UTM), batch processing, archive duplicate detection, and cadastre code assignment through a structured pipeline.
Replaces manual CSV creation and coordinate conversion for Ovitalmap parcel data by automating the entire workflow from raw input to archived, labeled CSV files.
When to Use It
- Convert parcel coordinates from decimal, DMS, or UTM formats to Ovitalmap CSV
- Generate vertex and boundary CSV files for a single parcel or batch of parcels
- Re-export archived parcel CSVs with corrected coordinates or updated cadastre codes
- Check if new parcel coordinates duplicate existing entries in the archive
- Assign stable parcel reference codes and cadastre codes to new parcels
- Backup or correct existing Ovitalmap parcel archive entries
Install
$ openclaw skills install @jeromeex/ovitalmap-parcel-csvOvitalMap Parcel CSV
Use the bundled Python scripts through JSON stdin/stdout. Do not recreate coordinate conversion, code allocation, CSV generation, or archive updates manually.
Input
Set OVITALMAP_WORKSPACE to the directory where exports and archives should be stored. If it is unset, the scripts use the current working directory.
Each parcel is a JSON object:
{"vertices":[[114.13472,22.50422],[114.13564,22.50411],[114.135,22.503]],"provider_name":"Survey Team","official_id":null,"altitude":[]}
Use WGS84 longitude, latitude order. For a batch, keep one country or region per pipeline run. The pipeline assigns stable parcel_ref values (P01, P02, and so on).
Workflow
- Extract and show the source coordinate text. When the source is an image, preserve the transcription for review.
- Convert decimal, DMS, or UTM coordinates with
scripts/coordinate_converter.py. Supply the coordinateformat; for decimal input also supplyorder, and for UTM supplyzoneandhemisphere. - Show the resulting WGS84 vertices and obtain explicit confirmation of the coordinates and provider names. Do not write exports or archives before confirmation.
- Obtain the ISO 3166-1 alpha-2 country or region code from explicit context. Ask when it is uncertain.
- Run
python3 scripts/parcel_pipeline.py --step 1withparcels,country_code, and optionaldateinYYMMDDform. Retain the returnedrun_id. Onneeds_input, request only the fields listed inrequired_input. - Continue with the same
run_id: run Step2bto classify archive hits and new parcels, then Step2to assign codes to new parcels. - Show the proposed codes. After the user approves them, pass
confirmed_codes: trueto Step3. - Deliver every path in
result.exportsin its returned order. Boundary files import into OvitalMap as tracks (轨迹); vertex files import as labels (标签).
Use --step all only when the user has already confirmed the complete input and explicitly approved automatic code acceptance with "confirmed": true and "auto_accept_codes": true.
Parcel codes
Prefer a confirmed official registration, cadastral, or permit identifier:
{CC}-{OFFICIAL_ID}
When no official identifier is available, assign a stable archive code:
{CC}-{YYMMDD}-{SEQ}
The archive determines the next three-digit sequence. Do not use unknown, invent a descriptive parcel name, or silently replace a generated code later.
Export modes
boundaryis the default and produces one track CSV per parcel.verticesproduces one label CSV per parcel only when explicitly requested.bothproduces both formats only when explicitly requested.
Preserve the chosen mode throughout a multi-step run.
Safety and consistency
- Treat
error,blocked, andneeds_inputas stopping conditions. - Never guess the country, provider, altitude, official identifier, UTM zone, or hemisphere.
- Reuse an archive hit's parcel code and metadata; do not append it again.
- Resolve batch conflicts by
parcel_ref; identical coordinates do not prove two submissions are the same parcel. - Do not replace a non-empty cadastral identifier without explicit confirmation.
- Preserve vertex order; the scripts close polygons when needed.
- Export each parcel separately and preserve submitted order.
- The scripts own filenames, CSV headers, encoding, archive schemas, and defaults.
Archive operations
Use scripts/archive_manager.py with one of these actions: scan, check_duplicate, extract_single, update_cadastre, backup, or correct.
References
- Read references/csv-contract.md when checking or changing OvitalMap CSV compatibility.
- Read references/workflow-contract.md when handling pipeline states, confirmations, or errors.
- Read references/interaction-and-edge-cases.md for duplicate submissions, archive hits, corrections, or multi-parcel batches.
Top skills in this category
Screenshot
@ivangdavilaCapture, inspect, and compare screenshots of screens, windows, regions, web pages, simulators, and CI runs with the right tool, wait strategy, viewport, and...
Translate
@ivangdavilaTranslates and localizes text, software strings, documents, subtitles, and marketing copy between any language pair. Use when translating anything, when fixing a translation that reads machine-made, or when localizing a product: ICU plurals and gender, placeholders that must survive, string catalogs (JSON, XLIFF, .po, .strings, .xcstrings, ARB, RESX, YAML), locale codes and fallback chains, RTL and bidi breakage, CJK typography, mojibake, text expansion that overflows the UI, subtitle timing and reading speed, hreflang and multilingual SEO, glossaries, translation memory and fuzzy matches, and post-editing machine output. Use when choosing register (tu/vous, tú/usted, du/Sie, keigo), between es-ES and es-419 or zh-Hans and zh-Hant, or when a certified, legal, or medical translation carries liability. Not for writing original copy natively in one language (spanish, french, german, japanese, chinese) or generating captions from audio (video-captions).
Humanizer
@biostartechnologyRemove signs of AI-generated writing from text. Use when editing or reviewing text to make it sound more natural and human-written. Based on Wikipedia's comprehensive "Signs of AI writing" guide. Detects and fixes patterns including: inflated symbolism, promotional language, superficial -ing analyses, vague attributions, em dash overuse, rule of three, AI vocabulary words, negative parallelisms, and excessive conjunctive phrases.
YouTube Watcher
@michaelgatharaFetch and read transcripts from YouTube videos. Use when you need to summarize a video, answer questions about its content, or extract information from it.
Elite Longterm Memory
@nextfrontierbuildsUltimate AI agent memory system for Cursor, Claude, ChatGPT & Copilot. WAL protocol + vector search + git-notes + cloud backup. Never lose context again. Vibe-coding ready.