Hacker News new | ask | show | jobs
by thwllms 2079 days ago
This would be a very big deal in my industry - civil/environmental engineering. In the river/stream flood modeling space, the US Army Corps of Engineers' HEC-RAS program [1] is king. It's a critical part of FEMA's National Flood Insurance Program. HEC-RAS is free, but it's not open source, and USACE doesn't appear to have any plans to make it so.

HEC-RAS is a Windows-only GUI application. Supposedly USACE has an internal Linux version, not publicly available. HEC-RAS has a limited COM API, but it's not officially documented. I suspect that the API was exposed unintentionally. Most of the input files are text, but the format is very strange (very old-school), again with no official documentation. I spend much of my days reverse-engineering HEC-RAS file formats in order to make the process of building flood models more efficient and less error-prone. Other developers like me exist at competing civil engineering firms, working on similar reverse engineering projects and secret sauce tools for HEC-RAS.

If HEC-RAS was made open source, it would be a game changer. We'd be able to accomplish so much more. If the input/output files were officially documented, it would be a game changer. FEMA would benefit tremendously.

[1] https://www.hec.usace.army.mil/software/hec-ras/

1 comments

Hi, I sent an email to the team in the listing to see if they can provide additional information about the file formats involved in HEC-RAS. Finger-crossed.

The following link does include a Linux download, but with little support - https://www.hec.usace.army.mil/software/hec-ras/download.asp....

Also doing some digging on Github, I did find an reverse engineered version of a python version of RAS via win32com control - https://github.com/mikebannis/rascontrol, there's also projects of varying degree across Github - https://github.com/search?q=hec-ras.

Based on your username, you're at US Digital Service? Thanks so much for taking to time to reach out. Glad to see they released a Linux version of the rasUnsteady64 executable! I was able to run the example on WSL! It wasn't there the last time I looked, for sure. There's a lot more to HEC-RAS than that, but it's certainly the most important component.

Mike Bannis has done great work wrapping the HEC-RAS controller and creating parsers some of the file formats. There's a very helpful _unoffcial_ book [1] laying out the win32com control and file format details. Making HEC-RAS open source would allow many more projects like these, with significantly less guesswork.

[1] https://www.kleinschmidtgroup.com/breaking-the-hec-ras-code-...

Yep, I'm with USDS. It's not a problem, I'm glad to help if I can and civil engineering is a bit out of my depth.

Are there anything specific about the formats I should be asking for? I'm assuming there are hundred of different file formats (input and output alike). If I knew more about the file formats, that may make the conversation with the team easier.