Code to convert nautical chart file format
Budget: £20 – £250 GBP
I need a skilled developer who can write code to convert nautical chart files from CM93 format to S57 format while preserving specific features and details. The ideal candidate would have experience with nautical charts and file conversion. The project requires the following:
- Write code to convert CM93 format to S57 format
- Preserve specific features and details in the converted nautical chart
- Ensure the final product is accurate and reliable
Skills required:
- Experience with nautical charts and file conversion
- Proficiency in programming languages such as java or C++
- Attention to detail and accuracy
CM93 is an older format that has minimal documentation, if any. This will require more programmatic involvement and reverse engineering code from an open-source project (OpenCPN). OpenCPN is the only known open-source software that reads and displays CM93 v2 charts.
Important: CM93 v3 is not the same as v2, which is not part of the task. v3 is an encrypted file format and has nothing to do with this project.
CM93 v2 charts are discontinued by C-Map, who made them back in the day but they are still used as an example OpenCPN. There is no known documentation on the file format, so reverse engineering the OpenCPN is seemingly the only option. Having said this. Some information still exists:
On S57, much information exists and it's an open format. This is outlined in the attached.
The only known open source reader/render/viewer of the cm93 is the opencpn project. https://github.com/OpenCPN/OpenCPN/blob/master/src/cm93.cpp (note that all source code and dependencies is in GIT hub, you will likely need to use many files there to do this.). https://github.com/search?q=repo%3AOpenCPN%2FOpenCPN+cm93&type=code&p=3 reveal where in the code and docs CM93 exist.
We know it’s a vector format, so it shall be saved as S57. I assume much of this can be deducted in the openCPN code as they also support S57 files. Note that S57 uses another standard, S52, on how to portray the S57 data. It's possible that the key to success for this conversion is when openCPN displays the CM93 charts, it uses the same coding system(S52) for display. If so, it's not that difficult to reverse engineer the output.
I have added a bit more information, but in general, I have no more information than whats in the attached.
The converter shall either be developed in react native for web or possible to be called from/use there.
The app to import the CM93 files and to input what folder to save the S57 files shall be done in react native.
The conversion in this step shall be converting all CM charts below the top CM93 folder. We may later develop a selective import/conversion like OpenCPN, but that is not needed for now.
If you have the skills and experience required for this project, please submit your proposal.
- Write code to convert CM93 format to S57 format
- Preserve specific features and details in the converted nautical chart
- Ensure the final product is accurate and reliable
Skills required:
- Experience with nautical charts and file conversion
- Proficiency in programming languages such as java or C++
- Attention to detail and accuracy
CM93 is an older format that has minimal documentation, if any. This will require more programmatic involvement and reverse engineering code from an open-source project (OpenCPN). OpenCPN is the only known open-source software that reads and displays CM93 v2 charts.
Important: CM93 v3 is not the same as v2, which is not part of the task. v3 is an encrypted file format and has nothing to do with this project.
CM93 v2 charts are discontinued by C-Map, who made them back in the day but they are still used as an example OpenCPN. There is no known documentation on the file format, so reverse engineering the OpenCPN is seemingly the only option. Having said this. Some information still exists:
On S57, much information exists and it's an open format. This is outlined in the attached.
The only known open source reader/render/viewer of the cm93 is the opencpn project. https://github.com/OpenCPN/OpenCPN/blob/master/src/cm93.cpp (note that all source code and dependencies is in GIT hub, you will likely need to use many files there to do this.). https://github.com/search?q=repo%3AOpenCPN%2FOpenCPN+cm93&type=code&p=3 reveal where in the code and docs CM93 exist.
We know it’s a vector format, so it shall be saved as S57. I assume much of this can be deducted in the openCPN code as they also support S57 files. Note that S57 uses another standard, S52, on how to portray the S57 data. It's possible that the key to success for this conversion is when openCPN displays the CM93 charts, it uses the same coding system(S52) for display. If so, it's not that difficult to reverse engineer the output.
I have added a bit more information, but in general, I have no more information than whats in the attached.
The converter shall either be developed in react native for web or possible to be called from/use there.
The app to import the CM93 files and to input what folder to save the S57 files shall be done in react native.
The conversion in this step shall be converting all CM charts below the top CM93 folder. We may later develop a selective import/conversion like OpenCPN, but that is not needed for now.
If you have the skills and experience required for this project, please submit your proposal.