fpcorcoran / pycesat2 Goto Github PK
View Code? Open in Web Editor NEWPyCESAT2 Python Library for reading, processing, and visualizing ATL03 data from NASA's ICESat-2 ATLAS space borne LiDAR
License: MIT License
PyCESAT2 Python Library for reading, processing, and visualizing ATL03 data from NASA's ICESat-2 ATLAS space borne LiDAR
License: MIT License
Add a deconvolution method to the BeamObject class.
Add the surface finding algorithm from Neuenschwander et al., 2019
Need to unpack attributes from hdf5 files in ATL03.
Need to use the RANSAC line to separate photons into above/below
Some thoughts:
C/C++ method using GDAL/OGR or boost::accumulators - wrap with SWIG? (probably best option)
Parallelize with multiprocessing library? (meh... maybe)
Option for distributed processing with xarray/dask? (probably not ideal)
Lat/Lon gets lost in functions. Could be a case for Photon class to keep all values together... would require complete overhaul
Need to fill out environment.yaml, requirements.txt, other general "good practice" scripts
to_egm08() function has occasional bug with infinity values. Needs to big fixed ASAP.
Need to find a way to improve the curve fitting so that parameters don't need to be selected so painstakingly.
The stats functions look super weird. Gotta fix that.
Fitting curves to the binned waveforms allows for the calculation of important natural, physical parameters (LAI, Kd, etc). This method should go in the WaveForm class.
Add function(s) to compute descriptive stats for a waveform.
Add offset parameter to exponential curve fit. A * e^(-C*x) + D where D = offset.
Use the signal photon confidence (signal_conf_ph) matrices to create landcover masks of land, ocean, ice, land ice, inland water.
Waveform objects need to know more about the beam they came from. For example:
Metadata needs to be unpacked from h5 format to a dictionary
Need to make the h5 file data handling significantly more robust. Unable to read certain files because beam is missing "heights" or "h_ph" fields.
.bin() fails to work with win_x values larger than some unknown threshold. Needs to be resolved ASAP
Adding functions to write classes to files would be a huge advantage for distributing and viewing intermediate stages of data processing. Some things to consider:
File types - HDF is the obvious choice, but having a csv, netcdf, or other type could be useful down the road as well.
Each class will need a separate writer since the data is transformed/added/removed from class to class.
This is a high priority issue and will be important for future development. Tread with care.
Need to add some signal filters (i.e. low pass, high pass, band pass). This should be done in the "Beam" class.
RANSAC needs more functionality:
inlier threshold
mask inliers
(Should ransacked beam be its own class - inherit from BeamObject?)
Use the RANSAC algorithm to fit a line to sea surface returns.
Resisted this for a long time, but it becoming increasingly clear that a class is needed for individual photons. This needs to be handled with lots of forethought since future classes will almost certainly inherit from the photon class. Must be robust and well designed.
Dedicated functions to get photons between/outside 2 surfaces would be easy, intuitive, and improve performance for these operations.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.