Skip to content

Extend kmz GUI options to flatGeoBuf mapVisualization outputs#785

Open
latwood wants to merge 41 commits into
masterfrom
GUI-Redesign-extendFlatGeoBuf
Open

Extend kmz GUI options to flatGeoBuf mapVisualization outputs#785
latwood wants to merge 41 commits into
masterfrom
GUI-Redesign-extendFlatGeoBuf

Conversation

@latwood

@latwood latwood commented Jun 24, 2026

Copy link
Copy Markdown
Collaborator

Work to finalize and cleanup the map visualization outputs, including adding in all the various kmz options to fgbz outputs. This involved taking methods from kmlVector.cpp and extending them to outputWriter.cpp, as well as updating the mapVisualization GUI outputs page and adding the new options to the C-API, ninjaArmy, ninja/ninjafoam, and WindNinjaInputs. Continues work for #753.

A bunch of cleanup to the flatGeoBufZip methods as well, including adding in the angleFromNorth calculations (related to issue #544). The only option that is still left to implement is the consistentColorScale methods.

Also some fixes to the fgbz and kmz title overlay legends/cards, which fixes all the issues described in #784, other than the wrf angleFromNorth problems.

Edit: the consistentColorScale option methods has been added to this pull request after all.

latwood added 15 commits June 9, 2026 13:31
…Zip outputs, it is only called for pdf output now. Related to issue #753.
…isy fgbz output warning. I also implemented the remaining open/close methods that pdf output does, that got dropped from the fgbz output methods. For issue #753.
…ill need to implement the code usage of them. Now only fgbz GUI output options are sent into OutputWriter for fgbz stuff, not pdf GUI options. Added wxModel specific fgbz options, just like wxModelGoog options, they have set default values, are but not set externally. For issue #753.
…eme, and vectorScaling (lineWidth) options to OutputWriter. For issue #753.

they seem to be working well, except there seems to be something off in the interval calculation methods for speedScaling. I might need to also look at how the map is interpretting some of the values, but it seems to be doing all right overall. Will look into it tomorow.
… equal_color), had to get the split_vals calculation right. For issue #753.
… I missed adding it to the old consistentKmzColorScale code. For issue #753. For issue #544.
…by more carefully matching kmz output legend sizing methods.

The wrf title card no longer cuts off the width to the wxModel identifier size (issue #784), wxModels no longer drop the third "date" line of the dateTime stamp.

For issue #753.
…ations, the wxModelIdentifier and wxModelTimeList are now properly passed between momentum and diurnal mass ninjas for that case. For issues #784 and #753.

that being said, I'm not the most happy with the implementation. I think the implementation will simplify once we setup a ninjaArmy level outputWriter combined outputs class. The issue was originally from trying to call init->getTimeList() and init->getForecastIdentifier() as if foamWxModelInitialization were an underlying wxModelInitialization class, having the data live in WindNinjaInputs is better than in foamWxModelInitialization, but not by much.
…uts, for WRF and NCEP surface initialization inputs. For issue #753, related to issue #784.
latwood added 6 commits June 25, 2026 15:48
…g faults for momentum solver diurnal runs with consistentColorScales. Related to issue #753.
…rnal runs weren't properly copying back the final result ascii grids to the final ninjas[i], used only in consistentColorScale outputs. Related to issue #753.
…nsistentKmzColorScale runs vs diurnal runs. we only want to carry around the 2D data grids across ninjas runs. Related to issue #753.
…ongside the kmzConsistentColorScale methods. some cleanup work, reorganization work, still needs to be done, but the consistentColorScale methods fully work in the current state. for issue #753.
…olorScale methods to the kmzConsistentColorScale methods. Also a hint of cleanup for fgbzConsistentColorScaleMethods. For issue #753.
latwood added 5 commits June 26, 2026 11:38
…in a input speed ascii grid, rather than doing the calculation on their internal spd grids, in preparation for using a combined multi-run grid as input. For issue #753.
…entColorScale functions, and implemented a single calcSpeedSplitsArmy() in ninjaArmy, using an array of pointers to the tmp resampled to output resolution for each data type ascii grids as input, instead of using an array of split vals calculated for each ascii grid. For issue #753.
…ed the need for KmlVector[i] and OutputWriter[i] in the generation of the consistentColorScale and the outputs. For issue #753.
…ling again with a velTempGrid, one fewer copy of ascii_grids. For issue #753.
…e calcSplitValsArmy() function, to use the vector sort algorithm on a combined vector of all the run ascii_grid datasets, as is done in the ascii_grid::divide_gridData() function for the individual ninjas[i] OutputWriter and KmlVector single run color scale outputs.

the resulting values now exactly match the same as running the original color scale calculation methods, on a single combined ascii_grid, where the old calcSplitValsFromSplitVals() method was a close approximation, but not exact. I carefully checked the resulting consistent kmz and fgbz outputs to make sure this was true.

for issue #753.
Comment thread src/ninja/ninjaArmy.cpp Fixed
Comment thread src/ninja/ninjaArmy.cpp Fixed
latwood added 9 commits June 29, 2026 12:08
… ninjas[i] level, accidentally broke the consistentColorScale setSpeedSplitVals() methods. So brought that small part back. For issue #753.
…t functions, as is done in OutputWriter. For issue #753.
…ound numSplits from ninjas[i] to army, just from army to ninjas[i]. For issue #753.
…e current implementation, don't want to overwrite the already calculated minVal. For issue #753.
…pdated calcSplitValsArmy() methods. Also updated Array2D::sortData() to more properly ignore NO_DATA values. For issue #753.
@latwood

latwood commented Jun 29, 2026

Copy link
Copy Markdown
Collaborator Author

@masonwillman the consistentColorScale option has been added, cleanup to the method finished as well, this pull request is ready for review again.

latwood added 6 commits June 29, 2026 19:09
…d, because my changes to Array2D::sortData() and ascii_grid::divide_gridData() to handle NO_DATA values, was not quite correct. I've fixed it more properly now, though it did require the sortedData variable to go from array to vector, to better manage the newly changing sortedData.size(). For issue #753.
…boost versions and so a hard coded path had started to break, works now.
…del kmz and fgbz outputs, added a check for it to ninja::checkInputs() as well as fixed the GUI. For issue #753.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants