Some other thoughts:
Thanks, it's pretty clear you are far ahead of me on how to do this.
Some of your ideas below sound pretty good. There has been a progression simple --> complex
1. Convert monthly pilot atlas charts to grib so they can be used for planning.
2. Maybe add average week for 4 weeks in a month to make it better.
3. Maybe add average weeks, or days in the month to make it better. (compressed and summarized?)
4. To save space, maybe some way of capturing variability factors.rather than having just a simple averaged vector and it gets more complicated.
5. Maybe save in the compressed version some kind of compressed variability factor(s) for
for wind direction, magnitude, frequency
for month, weeks, days,
for various segments of the chart.
6. Thus it gets more complicated with may factors and variables:
7. Maybe start slowly...and just make it work and improve it...
I guess at some point you could sort the data for those conditions, extract & compress the averages and make climatology files that align with those conditions, but this is getting really extensive. --Wouldn't the wind files has those periods inherently? Is there a way to identify them somehow? The cycles.
Sean, I sent you an email, you might check it? -(It just downloaded.)
Found this in the OpenCPN forum from bdcat...
15-09-2011, 18:56 bdcat Many, many thanks to Sean D'Epagnier, who created the OGL framework for OCPN, and got this branch started. Architectural errors in in the present work are mine, not his...
...A belated thank you as I believe it lead to open gl in windows.
I believe these are related to the ones Boat Alexandra (Sean) is using for climatology.
The development of these products is in response to the demand for increasingly higher resolution global datasets. For example, scientists want to make more accurate forecasts of ocean and weather conditions. Links to articles on the high resolution feasibility study and the blending methodology are found in the Bibliography section below.
Try with the following patch cannibalized from grib_pi... I did it without looking at the code at all and it will sure not work on Windows until src/bzip2 is copied form the grib plugin...
With Pavel's suggestions and help, I've installed VirtualBox - Unbuntu 12.04 - Opencpn for linux. I can run OpenCPN now in Linux and various plugins, but when I compile and try to run the Climatology plugin it does not appear. The last opencpn.log has this line:
So I guess I need to copy src/bzip2 from grib plugin to climatology plugin. (Can't seem to find this in Ubunto Folders...more later)
Needs to be fixed, for others. Now wonder how to set up a request for git pull from Sean...to fix, but beyond my experience.
Later: Found usr/opencpn-git/plugins/climatology_pi/src/bzip2 and also found usr/opencpn-git/plugins/grib_pi/src/bzip2 directories. So that is no longer the problem. Maybe it is in the code that Pavel captured in post above?
In Windows MSVC DEBUG Mode Climatology has a break.
[Frames below may be incorrect and/or missing, no symbols loaded for KernelBase.dll]
> wxbase28ud_vc_custom.dll!wxTrap() Line 678 C++
wxbase28ud_vc_custom.dll!DoShowAssertDialog(const wxString & msg) Line 753 C++
wxbase28ud_vc_custom.dll!wxAppTraitsBase::ShowAssertDialog(const wxString & msgOriginal) Line 557 + 0x9 bytes C++
wxmsw28ud_core_vc_custom.dll!wxGUIAppTraitsBase::ShowAssertDialog(const wxString & msg) Line 635 C++
wxbase28ud_vc_custom.dll!ShowAssertDialog(const wchar_t * szFile, int nLine, const wchar_t * szFunc, const wchar_t * szCond, const wchar_t * szMsg, wxAppTraits * traits) Line 836 + 0x11 bytes C++
wxbase28ud_vc_custom.dll!wxAppConsole::OnAssertFailure(const wchar_t * file, int line, const wchar_t * func, const wchar_t * cond, const wchar_t * msg) Line 445 + 0x22 bytes C++
wxbase28ud_vc_custom.dll!wxOnAssert(const wchar_t * szFile, int nLine, const char * szFunc, const wchar_t * szCond, const wchar_t * szMsg) Line 713 C++
wxmsw28ud_adv_vc_custom.dll!wxDatePickerCtrl::SetValue(const wxDateTime & dt) Line 247 + 0x43 bytes C++
climatology_pi.dll!ClimatologyConfigDialog::ClimatologyConfigDialog(ClimatologyDialog * parent) Line 191 + 0x24 bytes C++
climatology_pi.dll!ClimatologyDialog::ClimatologyDialog(wxWindow * parent, climatology_pi * ppi) Line 72 + 0x26 bytes C++
climatology_pi.dll!climatology_pi::OnToolbarToolCallback(int id) Line 229 + 0x30 bytes C++
opencpn.exe!MyFrame::OnToolLeftClick(wxCommandEvent & event) Line 3560 + 0x24 bytes C++
wxbase28ud_vc_custom.dll!wxAppConsole::HandleEvent(wxEvtHandler * handler, void (wxEvent &)* func, wxEvent & event) Line 323 C++
wxbase28ud_vc_custom.dll!wxEvtHandler::ProcessEventIfMatches(const wxEventTableEntryBase & entry, wxEvtHandler * handler, wxEvent & event) Line 1241 C++
wxbase28ud_vc_custom.dll!wxEventHashTable::HandleEvent(wxEvent & event, wxEvtHandler * self) Line 907 + 0x1c bytes C++
wxbase28ud_vc_custom.dll!wxEvtHandler::ProcessEvent(wxEvent & event) Line 1301 + 0x1c bytes C++
wxbase28ud_vc_custom.dll!wxEvtHandler::ProcessEvent(wxEvent & event) Line 1308 + 0x1c bytes C++
wxmsw28ud_core_vc_custom.dll!wxWindowBase::TryParent(wxEvent & event) Line 2661 + 0x1c bytes C++
wxbase28ud_vc_custom.dll!wxEvtHandler::ProcessEvent(wxEvent & event) Line 1315 C++
wxbase28ud_vc_custom.dll!wxEvtHandler::ProcessPendingEvents() Line 1197 C++
wxbase28ud_vc_custom.dll!wxAppConsole::ProcessPendingEvents() Line 296 C++
wxmsw28ud_core_vc_custom.dll!wxIdleWakeUpModule::MsgHookProc(int nCode, unsigned int wParam, long lParam) Line 6845 C++
wxmsw28ud_core_vc_custom.dll!GetMessage(tagMSG * lpMsg, HWND__ * hWnd, unsigned int wMsgFilterMin, unsigned int wMsgFilterMax) Line 309 C++
wxmsw28ud_core_vc_custom.dll!wxEventLoop::Dispatch() Line 225 + 0xf bytes C++
wxmsw28ud_core_vc_custom.dll!wxEventLoopManual::Run() Line 115 + 0xd bytes C++
wxmsw28ud_core_vc_custom.dll!wxAppBase::MainLoop() Line 312 + 0x15 bytes C++
wxmsw28ud_core_vc_custom.dll!wxAppBase::OnRun() Line 368 C++
wxbase28ud_vc_custom.dll!wxEntryReal(int & argc, wchar_t * * argv) Line 448 + 0x1b bytes C++
wxbase28ud_vc_custom.dll!wxEntry(int & argc, wchar_t * * argv) Line 209 + 0xd bytes C++
wxmsw28ud_core_vc_custom.dll!wxEntry(HINSTANCE__ * hInstance, HINSTANCE__ * __formal, HINSTANCE__ * __formal, int nCmdShow) Line 386 + 0xe bytes C++
opencpn.exe!WinMain(HINSTANCE__ * hInstance, HINSTANCE__ * hPrevInstance, char * lpCmdLine, int nCmdShow) Line 747 + 0x1c bytes C++
opencpn.exe!__tmainCRTStartup() Line 547 + 0x2c bytes C
opencpn.exe!WinMainCRTStartup() Line 371 C
Sean has been very patient with me, learning ubuntu and Vbox host window directory shares, and we've got the Makefile for creating the necessary database working now. The total starting database is about 130gb, but that gets processed down to much less as monthly files.
This is quite exciting as I can now see the results of Sean's work, and it is satisfying because after a big effort on Sean's part. I'd like to share one shot of his Climatology plugin, so you can get an idea. I hope Sean does not mind my doing this posting of a screen shot. We've almost got the first version of the data ready... The plugin is AWESOME, and hasn't been tested yet obviously. But Sean is going to want some willing testers when the time comes.
well as you can see the isobars are doubled up. Not sure why it is so bad here since it is the same algorithm grib uses. Some little glitches here and there, but basically I am already using this for planning cruising routes.