Coder Social home page Coder Social logo

isce-framework / fringe Goto Github PK

View Code? Open in Web Editor NEW
78.0 78.0 42.0 307 KB

Fine Resolution InSAR With Generalized Eigenvectors (FRInGE)

License: Apache License 2.0

CMake 2.72% C++ 48.78% C 0.19% Python 42.04% Cuda 1.47% Shell 0.12% MATLAB 1.40% Cython 3.27%
deformation geodesy insar time-series

fringe's People

Contributors

bjmarfito avatar codacy-badger avatar dbekaert avatar hfattahi avatar piyushrpt avatar rtburns-jpl avatar scottstanie avatar vbrancat avatar yjzhenglamarmota avatar yunjunz avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

fringe's Issues

ERROR 1: PROJ: proj_create_from_database: SQLite error on SELECT name, type, coordinate_system_auth_name

Hi

What this error could be related?

tops2vrt.py -i ../update/merged/ -s coreg_stack -g geometry -c slcs -B -24.6 -24.2 -66 -65.3
´´´
number of SLCs discovered: 82
we assume that the SLCs and the vrt files are sorted in the same order
creating directory: slcs
write vrt file for each SLC ...
1 / 82: slcs/20141018.vrt
2 / 82: slcs/20141111.vrt
3 / 82: slcs/20141205.vrt
4 / 82: slcs/20141229.vrt
5 / 82: slcs/20150122.vrt
6 / 82: slcs/20150215.vrt
7 / 82: slcs/20150227.vrt
8 / 82: slcs/20150323.vrt
9 / 82: slcs/20150416.vrt
10 / 82: slcs/20150603.vrt
11 / 82: slcs/20150627.vrt
12 / 82: slcs/20150721.vrt
13 / 82: slcs/20150814.vrt
14 / 82: slcs/20150907.vrt
15 / 82: slcs/20151001.vrt
16 / 82: slcs/20160528.vrt
17 / 82: slcs/20160808.vrt
18 / 82: slcs/20160901.vrt
19 / 82: slcs/20161001.vrt
20 / 82: slcs/20161025.vrt
21 / 82: slcs/20161118.vrt
22 / 82: slcs/20161212.vrt
23 / 82: slcs/20170105.vrt
24 / 82: slcs/20170129.vrt
25 / 82: slcs/20170222.vrt
26 / 82: slcs/20170306.vrt
27 / 82: slcs/20170318.vrt
28 / 82: slcs/20170330.vrt
29 / 82: slcs/20170411.vrt
30 / 82: slcs/20170423.vrt
31 / 82: slcs/20170505.vrt
32 / 82: slcs/20170517.vrt
33 / 82: slcs/20170529.vrt
34 / 82: slcs/20170610.vrt
35 / 82: slcs/20170622.vrt
36 / 82: slcs/20170704.vrt
37 / 82: slcs/20170716.vrt
38 / 82: slcs/20170728.vrt
39 / 82: slcs/20170809.vrt
40 / 82: slcs/20170821.vrt
41 / 82: slcs/20170902.vrt
42 / 82: slcs/20170914.vrt
43 / 82: slcs/20170926.vrt
44 / 82: slcs/20171008.vrt
45 / 82: slcs/20171020.vrt
46 / 82: slcs/20171101.vrt
47 / 82: slcs/20171113.vrt
48 / 82: slcs/20171125.vrt
49 / 82: slcs/20171207.vrt
50 / 82: slcs/20180112.vrt
51 / 82: slcs/20180124.vrt
52 / 82: slcs/20180205.vrt
53 / 82: slcs/20180217.vrt
54 / 82: slcs/20180301.vrt
55 / 82: slcs/20180313.vrt
56 / 82: slcs/20180325.vrt
57 / 82: slcs/20180406.vrt
58 / 82: slcs/20180418.vrt
59 / 82: slcs/20180430.vrt
60 / 82: slcs/20180512.vrt
61 / 82: slcs/20180524.vrt
62 / 82: slcs/20180605.vrt
63 / 82: slcs/20180816.vrt
64 / 82: slcs/20180828.vrt
65 / 82: slcs/20180909.vrt
66 / 82: slcs/20181003.vrt
67 / 82: slcs/20181027.vrt
68 / 82: slcs/20181108.vrt
69 / 82: slcs/20181120.vrt
70 / 82: slcs/20181202.vrt
71 / 82: slcs/20181214.vrt
72 / 82: slcs/20181226.vrt
73 / 82: slcs/20190107.vrt
74 / 82: slcs/20190119.vrt
75 / 82: slcs/20190131.vrt
76 / 82: slcs/20190212.vrt
77 / 82: slcs/20190224.vrt
78 / 82: slcs/20190308.vrt
79 / 82: slcs/20190320.vrt
80 / 82: slcs/20190401.vrt
81 / 82: slcs/20190413.vrt
82 / 82: slcs/20190425.vrt
creating stack directory: coreg_stack
finding bbox based on geo coordinates of [-24.6, -24.2, -66.0, -65.3] ...
ERROR 1: PROJ: proj_create_from_database: SQLite error on SELECT name, type, coordinate_system_auth_name, coordinate_system_code, datum_auth_name, datum_code, area_of_use_auth_name, area_of_use_code, text_definition, deprecated FROM geodetic_crs WHERE auth_name = ? AND code = ?: no such column: area_of_use_auth_name
ERROR 1: PROJ: proj_create_from_database: SQLite error on SELECT name, type, coordinate_system_auth_name, coordinate_system_code, datum_auth_name, datum_code, area_of_use_auth_name, area_of_use_code, text_definition, deprecated FROM geodetic_crs WHERE auth_name = ? AND code = ?: no such column: area_of_use_auth_name
x min-max: 25091 48113
y min-max: 5522 7268
write vrt file for stack directory
creating geometry directory: geometry
write vrt file for geometry dataset

´´´

building stopped with something related with libarmadillo-dev ?

Hi, guys, thanks for the new code!
I have a try with the Fringe code today. My compiling and building stopped at the Fit function.
It seems a problem of libarmadillo-dev, which I installed with apt-get under ubuntu with anaconda3.
Please see the following screen report. Any suggestions? thanks!

#######################
[67%] Building CXX object src/fit/CMakeFiles/fit.dir/Fit.cc.o
/home/sun/FRINGE/src/fringe/src/fit/Fit.cc: In member function ‘virtual void Fit::estimate_Tau(str)’:
/home/sun/FRINGE/src/fringe/src/fit/Fit.cc:589:30: error: ‘index_min’ is not a member of ‘arma’
arma::urowvec idx_min = arma::index_min(rmse_vs_tau);
^
src/fit/CMakeFiles/fit.dir/build.make:81: recipe for target 'src/fit/CMakeFiles/fit.dir/Fit.cc.o' failed
make[2]: *** [src/fit/CMakeFiles/fit.dir/Fit.cc.o] Error 1
CMakeFiles/Makefile2:506: recipe for target 'src/fit/CMakeFiles/fit.dir/all' failed
make[1]: *** [src/fit/CMakeFiles/fit.dir/all] Error 2
Makefile:148: recipe for target 'all' failed
make: *** [all] Error 2

despeck.py usage

What is the best way to use despeck.py?
It gives an error then on startup. The same window sizes used.

despeck.py -i /data/merged/fringe/coreg_stack/slcs_base.vrt -o /data/merged/fringe/Despeck/despeck -w /data/merged/fringe/KS2/count -l 100 -r 100000 -x 25 -y 35 -b 1

Input Dataset: /data/insar/Proc/Specgeo/Marre/proc/merged/fringe/coreg_stack/slcs_base.vrt
Weights Dataset: /data/insar/Proc/Specgeo/Marre/proc/merged/fringe/KS2/count
Output Dataset: /data/insar/Proc/Specgeo/Marre/proc/merged/fringe/Despeck/despeck
Window size: 25 35
Memsize: 100000 Mb
Blocksize: 100 lines
Master band: 2
Number of uint32 bytes for mask: 114
Number of rows = 4840
Number of cols = 13909
Number of bands = 17
Number of bands mismatch for weights and window size
Exiting with error code ....(108)

Illegal value errors with openblas

Continued from #65 (comment):

Compiling with openblas gives me invalid results for unit tests.

To reproduce, check out https://github.com/rtburns-jpl/fringe/tree/openblas-repro and run nix-build (requires Nix to be installed).

1/1 Test #1: eigen_test .......................***Exception: SegFault  0.12 sec
Testing known 3 x 3
3 -2 4
-2 8 2
4 2 3
Eigen values:
-1.81507
7
8.81507
Eigen vectors:
-0.679457 0.707107 0.1958
-0.276904 -5.55112e-16 -0.960898
0.679457 0.707107 -0.1958
Input array:
(3,0) (-2,0) (4,0)
(-2,0) (8,0) (2,0)
(4,0) (2,0) (3,0)
Order = 3
 ** On entry to ZHEEVR parameter number 10 had an illegal value
Largest eigen value: 5.55824e-321
(0,0)
(0,0)
(0,0)
Order  3
 ** On entry to ZHEEVR parameter number  6 had an illegal value
Smallest eigen value: 2.27772e-317
(0,0)
(0,0)
(0,0)
Matrix inverse:
(2.55556,0) (1,0) (-2.44444,0)
(1,-0) (0.5,0) (-1,0)
(-2.44444,-0) (-1,-0) (2.55556,-0)


0% tests passed, 1 tests failed out of 1

MacOS: Segmentation Fault 11 When Importing C++ Modules

Hi All,

I'm getting a segmentation fault whenever the c++ modules are imported.

(fringe) MBP:fringe rbiessel$ python
Python 3.7.7 (default, Mar 23 2020, 17:31:31) 
[Clang 4.0.1 (tags/RELEASE_401/final)] :: Anaconda, Inc. on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import nmaplib
Segmentation fault: 11

The same thing happens when running nmap.py. Has anyone else encountered this? Is this likely an installation problem? I've tried reinstalling the package without any luck.

Here's the build/installation process I followed according to the installation instructions:

cmake
:build rbiessel$ CXX=${CXX} cmake -DCMAKE_INSTALL_PREFIX=../install ../src/fringe -DCMAKE_FIND_FRAMEWORK=NEVER
-- The C compiler identification is Clang 10.0.0
-- The CXX compiler identification is Clang 10.0.0
-- Check for working C compiler: /opt/anaconda3/envs/fringe/bin/x86_64-apple-darwin13.4.0-clang
-- Check for working C compiler: /opt/anaconda3/envs/fringe/bin/x86_64-apple-darwin13.4.0-clang -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /opt/anaconda3/envs/fringe/bin/x86_64-apple-darwin13.4.0-clang++
-- Check for working CXX compiler: /opt/anaconda3/envs/fringe/bin/x86_64-apple-darwin13.4.0-clang++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found GDAL: /opt/anaconda3/envs/fringe/lib/libgdal.dylib (found suitable version "3.0.2", minimum required is "3.0") 
-- Found Armadillo: /opt/local/lib/libarmadillo.dylib (found suitable version "10.3.0", minimum required is "8.100") 
-- Found OpenMP_CXX: -fopenmp=libomp (found version "4.5") 
-- Found OpenMP: TRUE (found version "4.5") found components:  CXX 
-- Looking for sgemm_
-- Looking for sgemm_ - not found
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Looking for pthread_create
-- Looking for pthread_create - found
-- Found Threads: TRUE  
-- Looking for sgemm_
-- Looking for sgemm_ - found
-- Found BLAS: /opt/anaconda3/envs/fringe/lib/libmkl_intel_lp64.dylib;/opt/anaconda3/envs/fringe/lib/libmkl_intel_thread.dylib;/opt/anaconda3/envs/fringe/lib/libmkl_core.dylib;/opt/anaconda3/envs/fringe/lib/libiomp5.dylib;-lm;-ldl  
-- Looking for cheev_
-- Looking for cheev_ - found
-- A library with LAPACK API found.
-- Found Python: /opt/anaconda3/envs/fringe/bin/python3.7 (found suitable version "3.7.7", minimum required is "3.7") found components:  Interpreter Development NumPy 
-- Found Python: /opt/anaconda3/envs/fringe/bin/python3.7 (found suitable version "3.7.7", minimum required is "3.6") found components:  Interpreter 
-- Found Cython: /opt/local/bin/cython-3.7  
-- Found Python: /opt/anaconda3/envs/fringe/lib/libpython3.7m.dylib (found version "3.7.7") found components:  Development 
-- Found Cython:  0.29.22
-- Configuring done
-- Generating done
-- Build files have been written to: /Users/rbiessel/Documents/apps/ISCE/fringe/build
make all
:build rbiessel$ make all
[  3%] Compiling Cython CXX source for calamplib...
Scanning dependencies of target calamplib
[  7%] Building CXX object src/calamp/CMakeFiles/calamplib.dir/calamplib.cxx.o
[ 10%] Linking CXX shared module calamplib.so
ld: warning: -pie being ignored. It is only used when linking a main executable
[ 10%] Built target calamplib
[ 14%] Compiling Cython CXX source for ampdispersionlib...
Scanning dependencies of target ampdispersionlib
[ 17%] Building CXX object src/ampdispersion/CMakeFiles/ampdispersionlib.dir/ampdispersionlib.cxx.o
[ 21%] Linking CXX shared module ampdispersionlib.so
ld: warning: -pie being ignored. It is only used when linking a main executable
[ 21%] Built target ampdispersionlib
[ 25%] Compiling Cython CXX source for nmaplib...
Scanning dependencies of target nmaplib
[ 28%] Building CXX object src/nmap/CMakeFiles/nmaplib.dir/nmaplib.cxx.o
[ 32%] Linking CXX shared module nmaplib.so
ld: warning: -pie being ignored. It is only used when linking a main executable
[ 32%] Built target nmaplib
[ 35%] Compiling Cython CXX source for despecklib...
Scanning dependencies of target despecklib
[ 39%] Building CXX object src/despeck/CMakeFiles/despecklib.dir/despecklib.cxx.o
[ 42%] Linking CXX shared module despecklib.so
ld: warning: -pie being ignored. It is only used when linking a main executable
[ 42%] Built target despecklib
[ 46%] Compiling Cython CXX source for evdlib...
Scanning dependencies of target evdlib
[ 50%] Building CXX object src/evd/CMakeFiles/evdlib.dir/evdlib.cxx.o
[ 53%] Linking CXX shared module evdlib.so
ld: warning: -pie being ignored. It is only used when linking a main executable
[ 53%] Built target evdlib
[ 57%] Compiling Cython CXX source for sbaslib...
Scanning dependencies of target sbaslib
[ 60%] Building CXX object src/sbas/CMakeFiles/sbaslib.dir/sbaslib.cxx.o
[ 64%] Linking CXX shared module sbaslib.so
ld: warning: -pie being ignored. It is only used when linking a main executable
[ 64%] Built target sbaslib
Scanning dependencies of target fit
[ 67%] Building CXX object src/fit/CMakeFiles/fit.dir/Fit.cc.o
[ 71%] Linking CXX shared library libfit.dylib
ld: warning: -pie being ignored. It is only used when linking a main executable
[ 71%] Built target fit
[ 75%] Compiling Cython CXX source for fitlib...
Scanning dependencies of target fitlib
[ 78%] Building CXX object src/fit/CMakeFiles/fitlib.dir/fitlib.cxx.o
[ 82%] Linking CXX shared module fitlib.so
ld: warning: -pie being ignored. It is only used when linking a main executable
[ 82%] Built target fitlib
Scanning dependencies of target unwrap
[ 85%] Building CXX object src/unwrap_error/CMakeFiles/unwrap.dir/Unwrap.cc.o
[ 89%] Linking CXX shared library libunwrap.dylib
ld: warning: -pie being ignored. It is only used when linking a main executable
[ 89%] Built target unwrap
[ 92%] Compiling Cython CXX source for unwraplib...
Scanning dependencies of target unwraplib
[ 96%] Building CXX object src/unwrap_error/CMakeFiles/unwraplib.dir/unwraplib.cxx.o
[100%] Linking CXX shared module unwraplib.so
ld: warning: -pie being ignored. It is only used when linking a main executable
[100%] Built target unwraplib
make install
:build rbiessel$ make install
[ 10%] Built target calamplib
[ 21%] Built target ampdispersionlib
[ 32%] Built target nmaplib
[ 42%] Built target despecklib
[ 53%] Built target evdlib
[ 64%] Built target sbaslib
[ 71%] Built target fit
[ 82%] Built target fitlib
[ 89%] Built target unwrap
[100%] Built target unwraplib
Install the project...
-- Install configuration: ""
-- Installing: /Users/rbiessel/Documents/apps/ISCE/fringe/install/python/calamplib.so
-- Installing: /Users/rbiessel/Documents/apps/ISCE/fringe/install/bin/calamp.py
-- Installing: /Users/rbiessel/Documents/apps/ISCE/fringe/install/python/ampdispersionlib.so
-- Installing: /Users/rbiessel/Documents/apps/ISCE/fringe/install/bin/ampdispersion.py
-- Installing: /Users/rbiessel/Documents/apps/ISCE/fringe/install/python/nmaplib.so
-- Installing: /Users/rbiessel/Documents/apps/ISCE/fringe/install/bin/nmap.py
-- Installing: /Users/rbiessel/Documents/apps/ISCE/fringe/install/python/despecklib.so
-- Installing: /Users/rbiessel/Documents/apps/ISCE/fringe/install/bin/despeck.py
-- Installing: /Users/rbiessel/Documents/apps/ISCE/fringe/install/python/evdlib.so
-- Installing: /Users/rbiessel/Documents/apps/ISCE/fringe/install/bin/evd.py
-- Installing: /Users/rbiessel/Documents/apps/ISCE/fringe/install/python/Stack.py
-- Installing: /Users/rbiessel/Documents/apps/ISCE/fringe/install/bin/sequential.py
-- Installing: /Users/rbiessel/Documents/apps/ISCE/fringe/install/python/sbaslib.so
-- Installing: /Users/rbiessel/Documents/apps/ISCE/fringe/install/bin/sbas.py
-- Installing: /Users/rbiessel/Documents/apps/ISCE/fringe/install/lib/libfit.dylib
-- Installing: /Users/rbiessel/Documents/apps/ISCE/fringe/install/python/fitlib.so
-- Installing: /Users/rbiessel/Documents/apps/ISCE/fringe/install/python/TimeFunction.py
-- Installing: /Users/rbiessel/Documents/apps/ISCE/fringe/install/bin/fit_timeseries.py
-- Installing: /Users/rbiessel/Documents/apps/ISCE/fringe/install/python/timefn/BasisFn.py
-- Installing: /Users/rbiessel/Documents/apps/ISCE/fringe/install/python/timefn/CenteredBasisFn.py
-- Installing: /Users/rbiessel/Documents/apps/ISCE/fringe/install/python/timefn/Collection.py
-- Installing: /Users/rbiessel/Documents/apps/ISCE/fringe/install/python/timefn/Constant.py
-- Installing: /Users/rbiessel/Documents/apps/ISCE/fringe/install/python/timefn/Exp.py
-- Installing: /Users/rbiessel/Documents/apps/ISCE/fringe/install/python/timefn/Interface.py
-- Installing: /Users/rbiessel/Documents/apps/ISCE/fringe/install/python/timefn/Log.py
-- Installing: /Users/rbiessel/Documents/apps/ISCE/fringe/install/python/timefn/Periodic.py
-- Installing: /Users/rbiessel/Documents/apps/ISCE/fringe/install/python/timefn/Polynomial.py
-- Installing: /Users/rbiessel/Documents/apps/ISCE/fringe/install/python/timefn/Power.py
-- Installing: /Users/rbiessel/Documents/apps/ISCE/fringe/install/python/timefn/Spline.py
-- Installing: /Users/rbiessel/Documents/apps/ISCE/fringe/install/python/timefn/SplineFactory.py
-- Installing: /Users/rbiessel/Documents/apps/ISCE/fringe/install/python/timefn/Trigonometry.py
-- Installing: /Users/rbiessel/Documents/apps/ISCE/fringe/install/python/timefn/__init__.py
-- Installing: /Users/rbiessel/Documents/apps/ISCE/fringe/install/python/timefn/datetimeUtils.py
-- Installing: /Users/rbiessel/Documents/apps/ISCE/fringe/install/lib/libunwrap.dylib
-- Installing: /Users/rbiessel/Documents/apps/ISCE/fringe/install/python/unwraplib.so
-- Installing: /Users/rbiessel/Documents/apps/ISCE/fringe/install/bin/uavsar2vrt.py
-- Installing: /Users/rbiessel/Documents/apps/ISCE/fringe/install/bin/stripmap2vrt.py
-- Installing: /Users/rbiessel/Documents/apps/ISCE/fringe/install/bin/tops2vrt.py
-- Installing: /Users/rbiessel/Documents/apps/ISCE/fringe/install/bin/adjustMiniStacks.py
-- Installing: /Users/rbiessel/Documents/apps/ISCE/fringe/install/bin/unwrap_fringe.py
-- Installing: /Users/rbiessel/Documents/apps/ISCE/fringe/install/bin/unwrapStack.py
-- Installing: /Users/rbiessel/Documents/apps/ISCE/fringe/install/bin/Network.py
-- Installing: /Users/rbiessel/Documents/apps/ISCE/fringe/install/bin/StackVRT.py
-- Installing: /Users/rbiessel/Documents/apps/ISCE/fringe/install/bin/integratePS.py

Add despeck module section to workflow.md

It would be helpful to add a section to workflows.md that details the usage of the despeck module. Also, in general what is your proposed use-case for despeck.py? Adaptive neighborhood despeckling could be useful for my analysis, but I am unsure of the optimal usage of despeck.py within the FRInGE workflow.

Is topophase removal needed?

Hi All,

When checking the processing flow from stackSentinel.py (SLC stack pipeline) to FRInGE, I realized that there doesn't seem to be a topophase removal step. Maybe I am wrong on this? Isn't this step needed before carrying out the sequential estimator?

Thanks!
Nina

Unwrapping stopped using the run_unwrap_ps_ds.sh

Unwrapping of the PS and DS using the run_unwrap_ps_ds.sh stopped due to the following error:

snaphu v1.4.2
Reading wrapped phase from file PS_DS/20200821_20200914.int
No weight file specified. Assuming uniform weights
Reading correlation data from file PS_DS/tcorr_ds_ps.bin
NaN or infinity found in correlation data
Abort

The command I've used to generate the run_unwrap_ps_ds.sh is integratePS.py -s coreg_stack/slcs_base.vrt -d adjusted_wrapped_DS/ -t Sequential/Datum_connection/EVD/tcorr.bin -p ampDispersion/ps_pixels -o PS_DS --unwrap_method snaphu.

The code inside the run_unwrap_ps_ds.sh are the following:
unwrap_fringe.py -m snaphu -i PS_DS/20200821_20200827.int -c PS_DS/tcorr_ds_ps.bin -o PS_DS/unwrap/20200821_20200827.unw
unwrap_fringe.py -m snaphu -i PS_DS/20200821_20200902.int -c PS_DS/tcorr_ds_ps.bin -o PS_DS/unwrap/20200821_20200902.unw
unwrap_fringe.py -m snaphu -i PS_DS/20200821_20200908.int -c PS_DS/tcorr_ds_ps.bin -o PS_DS/unwrap/20200821_20200908.unw
unwrap_fringe.py -m snaphu -i PS_DS/20200821_20200914.int -c PS_DS/tcorr_ds_ps.bin -o PS_DS/unwrap/20200821_20200914.unw
unwrap_fringe.py -m snaphu -i PS_DS/20200821_20200920.int -c PS_DS/tcorr_ds_ps.bin -o PS_DS/unwrap/20200821_20200920.unw

Fringe/Snaphu output for Mintpy

Hi
Has anyone tried using the non built-in snaphu for imports into mintpy?
I processed the interferograms with the latest version of snaphu (2.0.4) but got an corrupted images.
Used snaphu (tested with/without tile mode) + make xml and vrt with custom script from isce2 pkgs.
The images processed with build-in snaphu from isce2 packages looks correct.
Playing with different snaphu options (data formats, uwrapping modes etc) with no effect.

snaphu -v -S -f merged/fringe/PS_DS/snaphu.conf 20200505_20200809.int 3419 -c merged/fringe/PS_DS/tcorr_ds_ps.bin -o 20200505_20200809.unw --tile 10 5 200 200 --nproc 20

Corrupted
Correct

How to geocode the InSAR time-series products with FRInGE?

I used ISCE's Sentinel-1 TOPS stack processor+FRInGE to process the deformation time series of Yongning, Yunnan, China, and found that the FRInGE time series algorithm gave more valid deformation information. However, I encountered difficulties when geocoding the results using the geocode.py in ISCE, and found that the coded results did not match actuality.
The specific code to run in the terminal is as follows:
stackSentinel.py -s ./rawdata/ -d ./dem/demLat_N26_N29_Lon_E098_E102.dem.wgs84 -a ../../AuxDir/ -o ./orbit/ -b '27.45 28.00 100.44 101.00' -W slc
tops2vrt.py -i ../merged/ -s coreg_stack -g geometry -c slcs -B 27.45 28.00 100.44 101.00
...
unwrapStack.py -s slcs -m Sequential/miniStacks/ -d Sequential/Datum_connection/ -M 15 -u 'unwrap_fringe.py' --unw_method snaphu
geocode.py ./Sequential/miniStacks/20220103_20220503/unwrap/20220103.unw --lat-file ../merged/geom_reference/lat.rdr --lon-file ../merged/geom_reference/lon.rdr

Fringe cmake can't find GDAL

Building fringe using:
CXX=g++ cmake -DCMAKE_INSTALL_PREFIX=../install ../src/fringe
on "Ubuntu 18.04.4 LTS", where file structure is
Fringe
build
src
fringe
install

I get the following error message:

CMake Error at /usr/local/home/jlmd9g/software/minicondda3/envs/fringe/share/cmake-3.17/Modules/FindPackageHandleStandardArgs.cmake:164 (message):
Could NOT find GDAL: Found unsuitable version "2.2.3", but required is at
least "3.0" (found
/usr/local/home/jlmd9g/software/minicondda3/envs/fringe/lib/libgdal.so)
Call Stack (most recent call first):
/usr/local/home/jlmd9g/software/minicondda3/envs/fringe/share/cmake-3.17/Modules/FindPackageHandleStandardArgs.cmake:443 (_FPHSA_FAILURE_MESSAGE)
cmake/FindGDAL.cmake:287 (FIND_PACKAGE_HANDLE_STANDARD_ARGS)
CMakeLists.txt:32 (FIND_PACKAGE)

-- Configuring incomplete, errors occurred!
See also "/usr/local/home/jlmd9g/software/FRiNGE/build/CMakeFiles/CMakeOutput.log".

But:
gdal-config --prefix
/usr/local/home/jlmd9g/software/minicondda3/envs/fringe
gdal-config --version
3.0.4
gdal-config --cflags
-I/usr/local/home/jlmd9g/software/minicondda3/envs/fringe/include
gdal-config --libs
-L/usr/local/home/jlmd9g/software/minicondda3/envs/fringe/lib -lgdal

I've got GDAL_DIR and GDAL_ROOT specified to the same directory:
echo $GDAL_DIR
/usr/local/home/jlmd9g/software/minicondda3/envs/fringe//lib

in which is the .so files:
ls /usr/local/home/jlmd9g/software/minicondda3/envs/fringe//lib/libgdal*

/usr/local/home/jlmd9g/software/minicondda3/envs/fringe//lib/libgdal.a
/usr/local/home/jlmd9g/software/minicondda3/envs/fringe//lib/libgdal.so
/usr/local/home/jlmd9g/software/minicondda3/envs/fringe//lib/libgdal.so.26
/usr/local/home/jlmd9g/software/minicondda3/envs/fringe//lib/libgdal.so.26.0.4

Any ideas?

Processing imageMath.py error

I followed the steps in the "workflow.md", an error occurred when I do the "imageMath.py" step.
The error message is as follows:

This is the Open Source version of ISCE.
Some of the workflows depend on a separate licensed package.
To obtain the licensed package, please make a request for ISCE
through the website: https://download.jpl.nasa.gov/ops/request/index.cfm.
Alternatively, if you are a member, or can become a member of WinSAR
you may be able to obtain access to a version of the licensed sofware at
https://winsar.unavco.org/software/isce
args:  Namespace(debug=False, dtype='byte', equation='a<0.4', hh=None, noxml=False, out='ampDispersion/ps_pixel', scheme='BSQ')
files:  ['--a=ampDispersion/ampdispersion']
Traceback (most recent call last):
  File "/home/xch/isce2/install/isce/components/isceobj/Util/ImageUtil/ImageLib.py", line 465, in mmapFromISCE
    img, dataName, metaName = loadImage(fname)
  File "/home/xch/isce2/install/isce/components/isceobj/Util/ImageUtil/ImageLib.py", line 416, in loadImage
    prop,fac,misc = parser.parse(metaName)
  File "/home/xch/isce2/install/isce/components/iscesys/Parsers/XmlParser.py", line 41, in parse
    root = ET.parse(filename)
  File "/home/xch/anaconda3/lib/python3.8/xml/etree/ElementTree.py", line 1202, in parse
    tree.parse(source, parser)
  File "/home/xch/anaconda3/lib/python3.8/xml/etree/ElementTree.py", line 584, in parse
    source = open(source, "rb")
FileNotFoundError: [Errno 2] No such file or directory: 'ampDispersion/ampdispersion.xml'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/xch/isce2/install/isce/components/isceobj/Util/ImageUtil/ImageLib.py", line 469, in mmapFromISCE
    img = loadGDALImage(fname)
  File "/home/xch/isce2/install/isce/components/isceobj/Util/ImageUtil/ImageLib.py", line 452, in loadGDALImage
    img.dataType = gdal.GetDataTypeByName(bnd.DataType)
  File "/home/xch/anaconda3/lib/python3.8/site-packages/osgeo/gdal.py", line 3199, in GetDataTypeByName
    return _gdal.GetDataTypeByName(*args)
TypeError: in method 'GetDataTypeByName', argument 1 of type 'char const *'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/xch/isce2/install/isce/applications/imageMath.py", line 451, in <module>
    main(args, files)
  File "/home/xch/isce2/install/isce/applications/imageMath.py", line 334, in main
    fmap = IML.mmapFromISCE(fstr, logger)
  File "/home/xch/isce2/install/isce/components/isceobj/Util/ImageUtil/ImageLib.py", line 473, in mmapFromISCE

I checked the "ampDispersion" dir, there are no any ".xml" files generated in the last step.
Then I have redone 3 times, there wes always the same error.
How to solve this problem?

Lack of spatial coherence

Does FRInGE generate spatial coherence files since I noticed that it only generates one temporal coherence file?

geometrical coherence in Network.py

Hello, what is the physical meaning of geometrical coherence in Network.py? Unable to download relevant literature, do not quite understand the meaning of this variable。
Thanks.

Make slc file from individual despeckled amplitude band and MLE phase

Hi,
I'm looking a simple way to constract slc's (like files in /merged) from individual despeckled amplitude band and MLE phase for further PS-like analysis.
So far I can't get a correct result with imageMath.py like:
imageMath.py -e='a_0;b_0' --a="despeck_test;45772;float;1" --b="20180715.slc;45772;cfloat;1" -o test.slc -t cfloat
Can you suggest any solution?
Thx

replace hardwired parameters in unwrap_fringe.py

The current version of unwrap_fringe.py has the following three parameters hardwired, using typical values from Sentinel-1. They should be extracted from the metadata files instead, like the unwrap.py from ISCE/topsStack.

altitude = 800000.0
earthRadius = 6371000.0
wavelength = 0.056

Mark here for the to-do-list.

EVD: Invalid values (-4 and -2) in tcorr.bin

While processing outputs of the ISCE stackSentinel workflow, the temporal coherence binary file created by EVD.py includes two invalid integer values (-4 and -2). While these invalid values appear to be randomly distributed, many do occur in the same locations as persistent scatterers.

Output interferogram clarification

Do the output deformation interferograms of FRInGE represent the cumulative deformation of the full stack, (i.e. date1_date2, date1_date3, date1_date4, ...), or deformation between successive pairs (i.e. date1_date2, date2_date3, date3_date4, ...)? This is relevant when importing results into MintPy. Thanks!

unit test for evd

We currently don't have unit tests for different modules which makes it difficult for developers to contribute/modify the codes.
One suggestion for a unit test for the evd module is a simulation where a neighborhood with a given decorrelation model and a given temporal phase behavior. The estimated wrapped phase series from evd module then can be compared with the simulation.

VRT dependencies out of ISCE interferogram stack?

Hi,

I am enjoying testing this.

Following https://github.com/isce-framework/fringe/blob/master/docs/workflows.md I am having some issues with tops2vrt.py

number of SLCs discovered:  0
we assume that the SLCs and the vrt files are sorted in the same order
creating directory: slcs
write vrt file for each SLC ...

Which I think relates to

slclist = glob.glob(os.path.join(inps.indir,'SLC','*','*.slc.full'))

The SLC folder in my stack contains

20201007/20201007.slc.full.vrt
20201007/20201007.slc.full.xml
20201019/20201019.slc.full.vrt
20201019/20201019.slc.full.xml
20201031/20201031.slc.full.vrt
20201031/20201031.slc.full.xml

And so the .slc.full search doesn't find anything.

Is there perhaps a mismatch with my ISCE versions? Or my interferogram workflow?

I did hack it to try and fix it but I am not convinced everything was working in the later steps.

Advice invited.

Install ERROR

hello everyone have met the following error when install it
Screenshot from 2023-08-31 13-55-17
Screenshot from 2023-08-31 13-55-33

Hard-coded PS coherence in integratePS.py

The final coherence (tcorr_ps_ds.bin) of the PS targets is constantly been 0.95. Then in Mintpy I can exclude PS targets by mask but trying to figure out why PS target integration is needed in the current implementation.
Thx.

Undefined symbol: omp_get_thread_num

Hi,
I tried to estimate wrapped phase time-series (DS) with sequential.py and got the error with
omp_get_thread_num.

writing /home/insar/slc/Sequential/miniStacks/20170201_20170520/stack/stack.vrt
-1 True
0 True
1 True
2 True
3 True
4 True
5 True
6 True
7 True
8 True
9 True
Traceback (most recent call last):
File "/opt/fringe/bin/sequential.py", line 199, in
runEvd(inps, miniStack.stackVRT, weightDS, outDir, miniStackCount, compSlcDir, compressedSlcName)
File "/opt/fringe/bin/sequential.py", line 52, in runEvd
import evdlib
ImportError: /opt/fringe/python/evdlib.so: undefined symbol: omp_get_thread_num

imageMath.py error

when I using fringe,imageMath.py have a error---TypeError:%d format:a number is required,not NoneType.How can I solve it?

If there is a single SLC left in a mini-stack Fringe crashes

Specific Example:

  • 121 total SLCs
  • mini-stack of size 20
  • leaves a single SLC

Result:

  • no EVD folder created for the single SLC
  • integratePS.py crashes because it can't find the EVD folder for the last SLC

Possible work-arounds:

  • just drop the extra one
  • take one from the previous mini-stack to make a mini-stack of 2?

Error in unwrap_fringe.py

unwrap_fringe.py fails when using SNAPHU unwrapper. The code fails because of non-existent metadata/XML file. Below an error report:

This is the Open Source version of ISCE.
Some of the workflows depend on a separate licensed package.
To obtain the licensed package, please make a request for ISCE
through the website: https://download.jpl.nasa.gov/ops/request/index.cfm.
Alternatively, if you are a member, or can become a member of WinSAR
you may be able to obtain access to a version of the licensed sofware at
https://winsar.unavco.org/software/isce
length, width:  1217   7620
Traceback (most recent call last):
  File "/home/vbrancat/Fringe/install/bin/unwrap_fringe.py", line 182, in <module>
    unwrap_snaphu(inps, length, width, metadata)
NameError: name 'metadata' is not defined

The issue popped up when I updated my main branch. At glance, the issue seems to be related to abug related to the merge of PR #45. Particularly, the bug is at line

def unwrap_snaphu(inps, length, width, metadata):
where I think metadata should be set to None by default

@hfattahi @bjmarfito

Exiting with error code ....(109)

evd.py -i coreg_stack/slcs_base.vrt -o Sequential -w KS2/nmap -x 11 -y 5
Input Dataset: coreg_stack/slcs_base.vrt
Weights Dataset: KS2/nmap
Output Folder Sequential
Output compressed SLC folder Sequential
Output compressed SLC compslc.bin
Window size: 11 5
Memsize: 4096 Mb
Blocksize: 64 lines
Minimum neighbors: 5
Mini-stack counter: 1
Decomposition method: MLE
Number of uint32 bytes for mask: 8
Number of rows = 588
Number of cols = 2166
Number of bands = 37
Number of bands mismatch for weights and window size
Half window size x of wts is different from input.
Exiting with error code ....(109)

Unwrapping failed and zero amplitude after runing seuential.py

I process 16 Sentinel-1A images following the "workflows.md", but it fails every time when unwrapping. No files generated in "./PS_DS/unwrap" dir. The "run_unwrap_ps_ds.sh" command outputs the following message when unwrapping each wrapped file:

This is the Open Source version of ISCE.
Some of the workflows depend on a separate licensed package.
To obtain the licensed package, please make a request for ISCE
through the website: https://download.jpl.nasa.gov/ops/request/index.cfm.
Alternatively, if you are a member, or can become a member of WinSAR
you may be able to obtain access to a version of the licensed sofware at
https://winsar.unavco.org/software/isce
length, width:  3764   15603

snaphu v1.4.2
Reading wrapped phase from file PS_DS/20170708_20180727.int
No weight file specified.  Assuming uniform weights
Reading correlation data from file PS_DS/tcorr_ds_ps.bin
NaN or infinity found in correlation data
Abort

I checked output files of each step using "mdx.py". I found the output files "./Sequential/miniStacks/_/EVD/*.slc" are all zeros, and the maps are all black. As a reault, the "integratePS.py" outputs are also black.

What is the reason of this problem?

no Phass

Traceback (most recent call last):
File "/Users/ysdong/Software/Fringe/install/bin/unwrap_fringe.py", line 126, in
unwrap_phass(inps, length, width)
File "/Users/ysdong/Software/Fringe/install/bin/unwrap_fringe.py", line 35, in unwrap_phass
import Phass
ModuleNotFoundError: No module named 'Phass'

tops2vrt.py error 1 missing [ and location outside the geolocation array range

When I used tops2vrt.py to generate the VRT file, I meet some problem.The details are as follows:

tops2vrt.py -i ../merged/ -s coreg_stack -g geometry -c slcs -B 38.5 39.9 116.6 118.2
number of SLCs discovered:  63
we assume that the SLCs and the vrt files are sorted in the same order
creating directory: slcs
write vrt file for each SLC ...
/home/jianbo/anaconda3/envs/insar/lib/python3.11/site-packages/osgeo/gdal.py:287: FutureWarning: Neither gdal.UseExceptions() nor gdal.DontUseExceptions() has been explicitly called. In GDAL 4.0, exceptions will be enabled by default.
  warnings.warn(
1 / 63: slcs/20210106.vrt
2 / 63: slcs/20210106.vrt
3 / 63: slcs/20210118.vrt
4 / 63: slcs/20210130.vrt
5 / 63: slcs/20210211.vrt
6 / 63: slcs/20210223.vrt
7 / 63: slcs/20210307.vrt
8 / 63: slcs/20210319.vrt
9 / 63: slcs/20210331.vrt
10 / 63: slcs/20210412.vrt
11 / 63: slcs/20210424.vrt
12 / 63: slcs/20210506.vrt
13 / 63: slcs/20210518.vrt
14 / 63: slcs/20210530.vrt
15 / 63: slcs/20210611.vrt
16 / 63: slcs/20210623.vrt
17 / 63: slcs/20210705.vrt
18 / 63: slcs/20210717.vrt
19 / 63: slcs/20210729.vrt
20 / 63: slcs/20210810.vrt
21 / 63: slcs/20210822.vrt
22 / 63: slcs/20210903.vrt
23 / 63: slcs/20210927.vrt
24 / 63: slcs/20211009.vrt
25 / 63: slcs/20211021.vrt
26 / 63: slcs/20211102.vrt
27 / 63: slcs/20211114.vrt
28 / 63: slcs/20211220.vrt
29 / 63: slcs/20220101.vrt
30 / 63: slcs/20220125.vrt
31 / 63: slcs/20220206.vrt
32 / 63: slcs/20220314.vrt
33 / 63: slcs/20220326.vrt
34 / 63: slcs/20220407.vrt
35 / 63: slcs/20220419.vrt
36 / 63: slcs/20220501.vrt
37 / 63: slcs/20220525.vrt
38 / 63: slcs/20220724.vrt
39 / 63: slcs/20220805.vrt
40 / 63: slcs/20220910.vrt
41 / 63: slcs/20220922.vrt
42 / 63: slcs/20221028.vrt
43 / 63: slcs/20221109.vrt
44 / 63: slcs/20221121.vrt
45 / 63: slcs/20221203.vrt
46 / 63: slcs/20221215.vrt
47 / 63: slcs/20221227.vrt
48 / 63: slcs/20230108.vrt
49 / 63: slcs/20230120.vrt
50 / 63: slcs/20230201.vrt
51 / 63: slcs/20230213.vrt
52 / 63: slcs/20230225.vrt
53 / 63: slcs/20230309.vrt
54 / 63: slcs/20230321.vrt
55 / 63: slcs/20230402.vrt
56 / 63: slcs/20230414.vrt
57 / 63: slcs/20230426.vrt
58 / 63: slcs/20230508.vrt
59 / 63: slcs/20230520.vrt
60 / 63: slcs/20230601.vrt
61 / 63: slcs/20230613.vrt
62 / 63: slcs/20230731.vrt
63 / 63: slcs/20230824.vrt
creating stack directory: coreg_stack
finding bbox based on geo coordinates of [38.5, 39.9, 116.6, 118.2] ...
ERROR 1: missing [
ERROR 1: missing [
Location outside the geolocation array range
/home/jianbo/InSAR/Fringe/install/bin/tops2vrt.py:80: RuntimeWarning: invalid value encountered in cast
  ymax = np.int16(np.round(np.max([se[1], nw[1]])))
/home/jianbo/InSAR/Fringe/install/bin/tops2vrt.py:83: RuntimeWarning: invalid value encountered in cast
  xmax = np.int16(np.round(np.max([se[0], nw[0]])))
x min-max:  -32034 0
y min-max:  502 0
write vrt file for stack directory
creating geometry directory: geometry
write vrt file for geometry dataset

The Error 1 : missing [ are happened twice, which may due to the gdal.transformer I guess. But I have no idea how to fix the error.
Hope anyone could help me.
Thanks.

process after estimating the wrapped phase time-series for DS pixels using the full covariance matrix of the entire stack using the evd.py command

Hello,

Following the steps inside the FRInGE Workflows, I have successfully ran
''
nmap.py -i coreg_stack/slcs_base.vrt -o KS2/nmap -c KS2/count -x 11 -y 5;
evd.py -i coreg_stack/slcs_base.vrt -w KS2/nmap -o EVD -x 11 -y 5 -n 20;
ampdispersion.py -i coreg_stack/slcs_base.vrt -o ampDispersion/ampdispersion -m ampDispersion/mean;
gdal2isce_xml.py -i ampDispersion/ampdispersion;
gdal2isce_xml.py -i ampDispersion/mean;
imageMath.py -e="a<0.4" --a=ampDispersion/ampdispersion -o ampDispersion/ps_pixels -t byte;
''
However when I run the next step shown in the workflows, which is integratePS.py,
'' integratePS.py -s coreg_stack/slcs_base.vrt -d EVD/ -t EVD/tcorr.bin -p ampDispersion/ps_pixels -o PS_DS --unwrap_method snaphu;''
the following error comes up:
ERROR 4: EVD/20190802.slc.vrt: No such file or directory
ERROR 4: EVD/20190814.slc.vrt: No such file or directory
Traceback (most recent call last):
File "/home/tools/src/fringe/install/bin/integratePS.py", line 295, in
main()
File "/home/tools/src/fringe/install/bin/integratePS.py", line 253, in main
integratePS2DS(dsDS_band_i, dsDS_band_j, dsSlc, dsTcor, psDataset, outDataset,
File "/home/tools/src/fringe/install/bin/integratePS.py", line 98, in integratePS2DS
nrows = dsDS_band_i.RasterYSize
AttributeError: 'NoneType' object has no attribute 'RasterYSize'

I understand that when you run the ministack version, ex.:
''sequential.py -i ../merged/SLC -s 5 -m 20 -o Sequential -w KS2/nmap -b coreg_stack/slcs_base.vrt -x 11 -y 5;
adjustMiniStacks.py -s slcs/ -m Sequential/miniStacks/ -d Sequential/Datum_connection/ -M 5 -o adjusted_wrapped_DS;''
the adjusted_wrapped_DS contains the .vrt files. However just by running the evd.py, as proposed in the workflow, they are not produced, to continue the integration with the PS.

Am I missing a step or is there an issue?

Thank you

How to set reference date before unwrapStack.py?

I've used these functions, but the unwrapping always starts from the date of the first image when selecting PS-DS. I think this may lead to large spatial baselines because my data spans over 5 years. So, I'd like to ask how to set a reference date before this, like in PSinsar.
Thanks

installation on Mac

I had to slightly change the Cmake command from:

CXX=clang++ cmake -DCMAKE_INSTALL_PREFIX=../install ../src/fringe

To the following to install the package on my Mac:

CXX=clang++ cmake -DCMAKE_FIND_FRAMEWORK=NEVER -DCMAKE_INSTALL_PREFIX=../install ../src/fringe
Before issuing a PR I wanted to make sure if others have experienced this?
@piyushrpt @yunjunz @yjzhenglamarmota

Error in adjustMiniStacks.py after updating to new tops2vrt.py

An error was generated after I've run the adjustMiniStacks.py as shown below.

adjustMiniStacks.py -s stack -m Sequential/miniStacks/ -d Sequential/Datum_connection/ -M 15 -o adjusted_wrapped_DS This is the Open Source version of ISCE. Some of the workflows depend on a separate licensed package. To obtain the licensed package, please make a request for ISCE through the website: https://download.jpl.nasa.gov/ops/request/index.cfm. Alternatively, if you are a member, or can become a member of WinSAR you may be able to obtain access to a version of the licensed sofware at https://winsar.unavco.org/software/isce /mnt/f/2020_Masbate/Sentinel-1/post-EQ_time-series/asc/fringe/Sequential/miniStacks/slcs_base_slcs_base ERROR 4: /mnt/f/2020_Masbate/Sentinel-1/post-EQ_time-series/asc/fringe/Sequential/miniStacks/slcs_base_slcs_base/EVD/slcs_base.slc: No such file or directory Traceback (most recent call last): File "/home/abscissa/fringe/install/bin/adjustMiniStacks.py", line 294, in <module> adjust_wrapped(dateList, inps) File "/home/abscissa/fringe/install/bin/adjustMiniStacks.py", line 215, in adjust_wrapped length, width = getSize(stackDict[dateList[0]][0]) File "/home/abscissa/fringe/install/bin/adjustMiniStacks.py", line 107, in getSize length = ds.RasterYSize AttributeError: 'NoneType' object has no attribute 'RasterYSize'

I've investigated and figured out that the error was possibly due to the updated tops2vrt.py which doesn't generate SLC VRTs from the ISCE2 topsStack processor. The argument -c on the tops2vrt.py was removed which should produce these VRTs.

What is the possible workaround on this new issue?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.