email copied to clipboard
info@dkart.fi
email copied to clipboard
info@dkart.fi
Copyright © 2024 GeoPhone Group International OY
All rights reserved.
dKart Publisher
DELTA

Quick Start

➥ Step 1: Preparation

➥ Step 2: Configure config.json

➥ Step 3: Basic Usage

  1. Ensure dKart Editor is installed (default location: C:\Program Files (x86)\dKart Office\dKart Editor 3.6\)
  2. Download or compile EditorTaskManager.exe
  3. Ensure the config.json file is located next to EditorTaskManager.exe
Open config.json and verify the path to dKart Editor:
Open a command prompt and run:
Where:
  • --input — folder with source .000 files (can contain subfolders)
  • --output — folder to save results
⚠️ Important: If dKart Editor is installed in a different directory, update the path field.
  
  

Main Operation Modes

➥ Interactive Mode (Default)

➥ Automatic Mode (--apply)

➥ Report Generation Mode (--makeReport)

➥ Full Automatic Mode (--apply --makeReport)

Validates files, applies fixes, but requires manual confirmation to save changes:
Validates, fixes, and automatically saves all changes without confirmation prompts:
Adds XML report file creation:
Automatic fixing + report generation:
Features:
  • ⚠️ Warning: Without the --apply option, the editor will request confirmation to save applied changes
  • Editor applies fixes in memory, but asks operator confirmation before saving to file
  • Operator can review all changes before saving
  • Not suitable for automated batch processing
  • Use for detailed control of the fixing process

Result:
  • Copy of each .000 file and associated files in output folder
  • Validation log files for each chart (format: FileName_YYYY-MM-DD_HH-MM.log)
  • Files will be modified only after manual operator confirmation to save
Features:
  • ✅ Fully automatic processing
  • ✅ No operator participation required
  • ✅ Suitable for batch processing large volumes
  • ✅ All fixes applied and automatically saved to files

Result:
  • Automatically fixed and saved files in output folder
  • Log files describing applied changes
  • Report of updated charts at the end of processing
Result:
  • XML report files for each chart (format: FileName_YYYY-MM-DD_HH-MM.xml)
  • Structured error data for subsequent analysis
  • ⚠️ Without --apply still requires manual confirmation to save changes
Features:
  • ✅ Fully automatic processing without operator participation
  • ✅ All fixes applied automatically
  • ✅ XML reports generated for each chart
  • ✅ Perfect for overnight batch processing of large volumes
  
  
  
  

Output Folder Structure

After executing the command, the output folder will have the following structure:
  

Registry Settings

The utility automatically configures dKart Editor parameters in Windows Registry before processing:
Registry Path:
Set Values:
  • AutoFix = 1 — enable automatic fixing
  • ObjAutoFix = 0 — disable object auto-fixing
  • AssignMandatory = 0 — don't assign mandatory attributes

💡 These settings can be changed in the registryKeys section of config.json.
  

File Masks

The utility searches for files matching the regular expression from config.json:
Examples of matching files:
  • GB5X02SE.000
  • AB1C.000
  • 1A3XYZ.000
  • Z92ABC.000

Examples of non-matching files:
  • gb5x02se.000❌ (lowercase letters)
  • GB7X02SE.000❌ (third character not in 1-6 range)
  • GB5X02SE.001❌ (wrong extension)
  

Logging

  • stdout.log — all program output (found files, processing progress)
  • error.log — utility errors (file problems, editor launch failures)
A separate log file with timestamp is created for each processed chart:
  • Name format: ChartName_YYYY-MM-DD_HH-MM.log
  • Example: GB5X02SE_2025-10-08_15-30.log
  • Content: detailed dKart Editor report on validation/fixing
  • Name format: ChartName_YYYY-MM-DD_HH-MM.xml
  • Example: GB5X02SE_2025-10-08_15-30.xml
  • Content: structured error data in XML format

➥ General Utility Logs

➥ Chart Processing Logs

➥ XML Reports (with --makeReport)

Updated Charts Report

When using the --apply option, the program outputs a list of charts that were modified at the end of execution:
Inclusion criteria: the number of files in the chart folder increased after processing (new files .001, .002, etc. were created).
  

Typical Usage Scenarios

➥ Scenario 1: Quality Check of New Charts with Manual Control

➥ Scenario 2: Automatic Fixing of Chart Batch

➥ Scenario 3: Full Automatic Processing with Documentation

Task: Validate new charts before publication with selective fix application
Task: Automatically fix known issues in a large batch of charts without operator participation
Task: Automatically fix errors and get detailed reports for all charts
Features:
  • ⚠️ Operator must be present to confirm saving changes
  • Editor applies fixes, then pauses and waits for operator decision to save
  • Operator can review all changes before saving
  • Suitable for critical charts requiring control

Post-execution actions:
  1. Check error.log for critical utility errors
  2. Review XML reports for each chart
  3. Analyze found errors and applied fixes
Features:
  • ✅ Fully automatic mode — no operator needed
  • ✅ Suitable for overnight processing of large volumes
  • ✅ All fixes applied without prompts

Post-execution actions:
  1. Review the list of updated charts in program output
  2. Spot-check fixed files
  3. Use files from D:\FixedCharts for further work
Features:
  • ✅ Fully automatic mode
  • ✅ Maximum process documentation
  • ✅ Suitable for archiving processing results

Result:
  • Automatically fixed charts
  • XML reports for each chart
  • Text processing logs
  • List of updated charts
  
  
  

Troubleshooting

Cause: Command not specified or not found in config.json
Solution:
  • Ensure the first argument is the command name (e.g., testAndFixS57)
  • Check that config.json contains a task with "command": "testAndFixS57"
Cause: dKart Editor not found at the specified path
Solution:
  1. Verify that dKart Editor is installed
  2. Open config.json and update the path field to the actual path to dKartEditor.exe
  3. Use full absolute path with escaped backslashes: C:\Program Files\...
Cause: Insufficient permissions to create output directory
Solution:
  • Check access rights to the output folder
  • Ensure the path is correct and writable
  • Try specifying a different output directory
Cause: Files don't match the regular expression in fileMask
Solution:
  1. Check file names — they must match S-57 format
  2. Ensure extension is .000 (not .001, .002, etc.)
  3. If needed, modify fileMask in config.json
Cause: Insufficient permissions to write to registry
Solution:
  • Run the utility as administrator
  • Or remove the registryKeys section from config.json (settings will need to be set manually)

➥ Problem: "Command not found"

➥ Problem: "Editor not found"

➥ Problem: "Failed to create output directory"

➥ Problem: No files found

➥ Problem: Registry access denied

Advanced Configuration

➥ Adding Custom Task

➥ Configuring Regular Expression

You can add a new task to config.json:
Breakdown:
  • ^ — start of filename
  • ([A-Z][A-Z]|\d[A-Z]|[A-Z]\d) — first 2 characters (AA or 1A or A1)
  • ([123456]) — third character (digit from 1 to 6)
  • [A-Z\d_]{1,5} — 1 to 5 characters (letters, digits, underscore)
  • .000$ — extension .000 at the end

Example modifications:
For all .000 files:
The fileMask regular expression determines which files will be processed.
Current expression for S-57:
For files starting with GB:
⚠️ Warning: In JSON, all backslashes must be doubled: \d instead of \d, \. instead of .
  
  
  
  

Interpreting Results

➥ Successful Processing

➥ Processing with Errors

Interpretation:
  • Chart was processed, but dKart Editor exited with an error
  • Check the chart's log file for details: GB5X02SE_YYYY-MM-DD_HH-MM.log
Interpretation:
  • 3 files processed
  • 1 chart had changes applied (new files .001, .002 created)
  • 2 charts required no changes
  
  

Tips and Best Practices

➥ 1. Testing on Small Dataset

➥ 2. Backup

Always create a backup of source files before running with --apply:

➥ 3. Using Relative Paths

➥ 4. Log Verification

➥ 5. Batch Processing by Regions

You can use relative paths:
After processing, always check:
  1. error.log — critical utility errors
  2. stdout.log — general execution flow
  3. Individual chart logs — processing details for each chart
For convenience, you can create a batch file:
Before processing a large batch of charts:
  1. Create a test folder with 2-3 charts
  2. For automatic processing: Run with --apply on test data
  3. Check logs and verify correct operation
  4. Verify fix results
  5. Only after successful test, process the full set

⚠️ Important: Mode without --apply requires operator presence to confirm saving changes, so it's not suitable for testing automatic processing.
  
  
  

Performance

Approximate processing time per S-57 chart: 2-10 seconds (depends on size and complexity).
For 100 charts: ≈ 3-15 minutes
  • Processing is sequential (one file at a time)
  • Not recommended to interrupt the process during processing
  • For large volumes (1000+ charts) may require several hours

➥ Processing Time

➥ Limitations

Frequently Asked Questions

➥ Q: Can I process only .001, .002, etc. files?

➥ Q: Can I cancel processing after starting?

A: Yes, press Ctrl+C. Already processed files will remain in the output folder.

➥ Q: Where are registry settings stored?

A: In config.json, section registryKeys. Settings are applied only during utility execution.

➥ Q: Can I run multiple instances of the utility simultaneously?

A: Yes, if they use different output folders. Not recommended to process the same files simultaneously.

➥ Q: What does "Updated charts" mean?

A: List of charts where new files were created after processing (e.g., .001, .002). This indicates that changes were made to the chart.
A: Yes, modify fileMask in config.json:
  

Technical Support

If you encounter problems:
  1. Check error.log in the output directory
  2. Ensure config.json is valid (use a JSON validator)
  3. Verify the path to dKart Editor is correct
  4. Ensure you have read/write permissions in the specified directories

Exit Codes

The utility returns the following codes:
  • 0 — successful execution
  • 1 — command not specified
  • 2 — command not found
  • 3 — missing required arguments
  • 4 — input directory doesn't exist
  • 5 — editor not found
  • 8 — registry write error
  • 9 — output directory creation error
  • 10 — intermediate directory creation error
  • 11 — file copy error
  • 12 — logging initialization error

These codes can be used in scripts for automation:
  

Advanced Features

➥ File Counting

➥ Path Normalization

All paths in the "Updated charts" report are normalized using:
  1. fs::canonical() — converts to absolute canonical form
  2. fs::lexically_normal() — fallback for non-existent paths

This ensures consistent path formatting and prevents duplicates

➥ Logging System

The dual logging system:
  • Captures std::wcoutstdout.log
  • Captures std::wcerrerror.log
  • Preserves console output for real-time monitoring
  • Uses UTF-8 encoding for proper Unicode character handling
The utility uses the CountFilesInDirectory method to track file changes:
  • Counts files before processing
  • Counts files after processing
  • If the count increased (new .001, .002 files created), the chart is marked as updated

Integration with Other Tools

➥ Using in Scripts

➥ Parsing XML Reports

The XML reports generated with --makeReport can be parsed for automated analysis:
PowerShell example:
  
  

Configuration Examples

➥ Minimal Configuration

➥ Multiple Tasks Configuration

Define multiple processing tasks:
Process all .000 files with minimal settings:
  
  

Appendix: File Format Information

➥ S-57 File Structure

➥ Log File Format

Log files contain:
  • Timestamp of processing
  • List of validation checks performed
  • Found errors with severity levels
  • Applied fixes (if --apply was used)
  • Statistics

➥ XML Report Schema

XML reports follow the dKart Editor schema and include:
  • Chart metadata
  • Error list with codes and descriptions
  • Affected objects and attributes
  • Recommendations for fixing
S-57 datasets consist of multiple files:
  • .000 — base file (catalog)
  • .001, .002, etc. — data files
  • Associated metadata files

EditorTaskManager processes the .000 files and automatically includes all associated files in the output.