HALOS - "Hurricane Advanced Lightning Observation Software" is a C++ program to collect lightning data from interpolated timestamp points over known hurricane pathways. Currently, Python based programs that provide similar solutions take increased time (~6-8 hours per storm path) to collect all lightning information along a pathway. This program can collect the same amount of infomation in half the time because it is written in C++, which serperates run time from compile time, does not need an interpretor and manages memory more efficiently. This means that this tool could possibly help researchers interested in generating lighting climatologies over hurrricane events at increased scale and speed. This program is also built on the AWS cloud system which provides all GOES-16 Geostationary Lightning Mapper (GLM) netCDF files that currently exist free of charge to the user. This means that in order to retrieve lightning data, the user does not need the netCDF data locally and only needs an AWS key.
Currently this repo can be built on a windows machine using Visual Studio and the MSVC legacy compiler.
- vcpkg - C++ package manager for windows machines
- AWS C++ SDK [S3] - tool for data collection from cloud to local
/netcdf
directory - netcdf-cxx4 - netcdf library from UCAR to process netcdf files
- HDF5 - hierarchical data format library, required for netcdf-cxx4 as dependency
- First pull the vspkg github repo to a suitable file on your local machine
- Then, add vcpkg application to your environment path variable
The following will install the x64 version of the library:
$ vcpkg install netcdf-cxx4:x64-windows
The following command will make all libraries downloaded available to the #include
preprocessor statement in Visual Studio:
$ vcpkg integrate install
vcpkg install aws-cpp-sdk[s3, transfer]:x64-windows
vcpkg install hdf5:x64-windows
Before running the code, you will need to set up specific AWS environment variables, which are needed to initialize the api and call for the netcdf files containing lightning data.
- Set up an AWS account and follow steps 1-11 here to create a credentials file.
- Similarly, you will need to set up an AWS config file with plain text that is best for your region. Documentation on config files are found here.
- Set up your
AWS_CONFIG_FILE
andAWS_CREDENTIALS_FILE
path variables by using the windows commands at the bottom of this page.
- You will get an HDF error when trying to read an NcFile unless you set the
HDF5_USE_FILE_LOCKING=FALSE
as an environment variable on your computer.