Giter Club home page Giter Club logo

pysyd's Introduction

Automated Measurements of Global Asteroseismic Parameters

PyPI tests Documentation arXiv JOSS PyPI downloads ascl:2111.017


Documentation

The documentation for pySYD can be found here

Attribution

If you make use of pySYD in your work, please cite Chontos et al. (2022):

@ARTICLE{2022JOSS....7.3331C,
       author = {{Chontos}, Ashley and {Huber}, Daniel and {Sayeed}, Maryum and {Yamsiri}, Pavadol},
        title = "{pySYD: Automated measurements of global asteroseismic parameters}",
      journal = {The Journal of Open Source Software},
     keywords = {Python, fundamental stellar properties, solar-like oscillations, stellar oscillations, stellar astrophysics, asteroseismology, astronomy, global asteroseismology, Astrophysics - Solar and Stellar Astrophysics, Astrophysics - Instrumentation and Methods for Astrophysics},
         year = 2022,
        month = nov,
       volume = {7},
       number = {79},
          eid = {3331},
        pages = {3331},
          doi = {10.21105/joss.03331},
archivePrefix = {arXiv},
       eprint = {2108.00582},
 primaryClass = {astro-ph.SR},
       adsurl = {https://ui.adsabs.harvard.edu/abs/2022JOSS....7.3331C},
      adsnote = {Provided by the SAO/NASA Astrophysics Data System}
}

License

© 2019-2022 Ashley Chontos and contributors.
pySYD is free software made available under the MIT license.

Contribution

Our list of contributors continues to grow!
If you'd like to be a part of that, please see our guide for contributing.

pysyd's People

Contributors

ashleychontos avatar charmoniumq avatar danxhuber avatar dfm avatar maryumsayeed avatar parallelpro avatar pavyamsiri avatar saiprathyushamalla 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

Watchers

 avatar  avatar  avatar

pysyd's Issues

Problem with input files


I downloaded normalized lightcurves and power spectrum using lightkurve of one object KIC3441157 which is expected to have nu_max = 5-6 microHertz and del_nu = 1 microhertz (from literature)

Running this is giving me following error - AttributeError: module 'pysyd.utils' has no attribute 'PySYDInputError'
Screenshot from 2023-04-30 00-00-25
Screenshot from 2023-04-30 00-00-36

  • OS: [Linux]
  • Version: [Ubuntu 20.04.6 LTS]
  • Implementation: [command line]

Attachments

Lightcurve and power spectra files - obtained using lightkurve
3441157_LC.txt
3441157_PS.txt

Other


Summary Checklist:

  • How were you using pySYD when you experienced the issue? command line from terminal
  • Did you provide all the relevant information and files so that we can reproduce the error? Yes
  • Did you check if the issue has already been reported? Yes → Was there a proposed workaround or solution? No
  • Do you know if the issue is version specific? IDK
  • Have you identified a workaround or solution? No
  • Will you be submitting a pull request associated with this issue? No

Got an value error

Hi ashleychontos,

I got an value error when use "pysyd run -- star 302372658":
self.freq_cs = np.array(self.frequency[self.params['oversampling_factor']-1::self.params['oversampling_factor']])
ValueError: slice step cannot be zero

I got the LC.txt and PS.txt of TIC302372658 with lightkurve. But I got the upper error when I use pysyd to run it.
So how should I do?

Code crashes when supplying --keywords


Relevant Materials

Description

Command line code crashes when supplying --keywords. Error can be reproduced by running the default example in the documentation:

pysyd setup
pysyd run --star 1435467 -dv --ux 5000 --mc 200

Error message:

Traceback (most recent call last):
File "/usr/local/anaconda3/envs/pysyd/bin/pysyd", line 8, in
sys.exit(main())
File "/usr/local/anaconda3/envs/pysyd/lib/python3.10/site-packages/pysyd/cli.py", line 663, in main
args.func(args)
File "/usr/local/anaconda3/envs/pysyd/lib/python3.10/site-packages/pysyd/pipeline.py", line 198, in run
params = utils.Parameters(args=args)
File "/usr/local/anaconda3/envs/pysyd/lib/python3.10/site-packages/pysyd/utils.py", line 116, in init
self.add_cli(args)
File "/usr/local/anaconda3/envs/pysyd/lib/python3.10/site-packages/pysyd/utils.py", line 367, in add_cli
self.check_cli(args)
File "/usr/local/anaconda3/envs/pysyd/lib/python3.10/site-packages/pysyd/utils.py", line 406, in check_cli
raise InputError("\nWhen running multiple stars via command line, the number \n of values provided for %s MUST equal the number of stars\n" % each)
pysyd.utils.InputError:

Removing --keywords fixes the problem, but limits code functionality. E.g. the following works:

pysyd run --star 1435467 -dv

Computing

Please provide (by editing) the following information:

  • OS: macos
  • Version: 6.10.0
  • Implementation: command line

Attachments

In order to reproduce the issue from our end, please provide both the light curve and power spectrum for the relevant target!

Crash happens with default example files


Resizable plot windows


Relevant Materials

Description

I would like to be able to resize the windows that display plots.
I am running pysyd for the example star on my 13 in MacBook pro and the plots displayed appeared cropped. I cannot resize the window or find scrollbars. I am having to access the screenshot saved in the results folder to see the results before making any modifications to the run command.

Provide a clear and concise explanation for what you would like changed, including why you would like to see it implemented. For example, is it related to a problem or open issue? If so, please explain in detail and provide any other relevant information (i.e. links, screenshots, etc.). Are there any alternative solutions you've considered?

Other

Please add other context or any relevant files that will assist in the request.


Summary Checklist

Is this a major request?
  • Yes
  • No
Do you have a proposed
solution?

  • Yes
  • No
If so, will you be submitting
a pull request?

  • Yes
  • No
  • N/A
What type of request is it?
  • New feature
  • Modification
  • Suggested update
  • Other? (fill answer here)
Why is it needed?
  • General improvement
  • Solves a problem
  • Relevant to an open issue
  • Increased efficiency and/or speed
  • Other? (fill answer here)

Problem loading PS

When running on KIC8738809 I encountered a problem when pysyd attempts to read in the power spectrum.

pysyd run --star KIC8738809 --info info/star_info.csv --mc 200 -vto

The power spectrum and time series both look fine as far as I can tell.

KIC8738809_PS.txt
KIC8738809_LC.txt


Target: KIC8738809

LIGHT CURVE: 229661 lines of data read

Time series cadence: 59 seconds

Traceback (most recent call last):
File "/home/nielsemb/.local/bin/pysyd", line 8, in
sys.exit(main())
File "/home/nielsemb/.local/lib/python3.7/site-packages/pysyd/cli.py", line 573, in main
args.func(args)
File "/home/nielsemb/.local/lib/python3.7/site-packages/pysyd/pipeline.py", line 29, in main
run(args)
File "/home/nielsemb/.local/lib/python3.7/site-packages/pysyd/pipeline.py", line 93, in run
count = pipe(args.params['stars'], args)
File "/home/nielsemb/.local/lib/python3.7/site-packages/pysyd/pipeline.py", line 131, in pipe
single = Target(star, args)
File "/home/nielsemb/.local/lib/python3.7/site-packages/pysyd/target.py", line 60, in init
self = utils.load_data(self, args)
File "/home/nielsemb/.local/lib/python3.7/site-packages/pysyd/utils.py", line 555, in load_data
args, star, note = load_power_spectrum(args, star)
File "/home/nielsemb/.local/lib/python3.7/site-packages/pysyd/utils.py", line 689, in load_power_spectrum
args, star, note = check_input_data(args, star, note)
File "/home/nielsemb/.local/lib/python3.7/site-packages/pysyd/utils.py", line 878, in check_input_data
star.freq_cs = np.array(star.frequency[args.of_actual-1::args.of_actual])
ValueError: slice step cannot be zero

An incomprehensible error when using star_info.csv to run

Hi ashleychontos,

This happened when I run TIC140938975.
When I run the command with the following arguments in the command line, there are no issues with the result:
pysyd run --star 140938975 --sp 0.5 --lx 15
But when I run the command with the arguments placed in star_info.csv, the following error occurs
Traceback (most recent call last):
File "/home/lishijie/anaconda3/envs/pySYD-env/bin/pysyd", line 8, in
sys.exit(main())
^^^^^^
File "/home/lishijie/anaconda3/envs/pySYD-env/lib/python3.11/site-packages/pysyd/cli.py", line 663, in main
args.func(args)
File "/home/lishijie/anaconda3/envs/pySYD-env/lib/python3.11/site-packages/pysyd/pipeline.py", line 193, in run
_pipe(args.stars, params)
File "/home/lishijie/anaconda3/envs/pySYD-env/lib/python3.11/site-packages/pysyd/pipeline.py", line 133, in _pipe
star.process_star()
File "/home/lishijie/anaconda3/envs/pySYD-env/lib/python3.11/site-packages/pysyd/target.py", line 157, in process_star
self.derive_parameters()
File "/home/lishijie/anaconda3/envs/pySYD-env/lib/python3.11/site-packages/pysyd/target.py", line 991, in derive_parameters
self.first_step()
File "/home/lishijie/anaconda3/envs/pySYD-env/lib/python3.11/site-packages/pysyd/target.py", line 1173, in first_step
self.global_fit()
File "/home/lishijie/anaconda3/envs/pySYD-env/lib/python3.11/site-packages/pysyd/target.py", line 1568, in global_fit
self.frequency_spacing()
File "/home/lishijie/anaconda3/envs/pySYD-env/lib/python3.11/site-packages/pysyd/target.py", line 1752, in
frequency_spacing
l, a = pl.pop(idx), pa.pop(idx)
^^^^^^^^^^^
TypeError: 'NoneType' object cannot be interpreted as an integer

140938975_LC.txt
140938975_PS.txt

Deprecation Warning

DEPRECATION: Loading egg at /home/lishijie/anaconda3/envs/pysyd/lib/python3.11/site-packages/pysyd-6.10.5-py3.11.egg is deprecated. pip 23.3 will enforce this behaviour change. A possible replacement is to use pip for package installation.. Discussion can be found at pypa/pip#12330

Quotes FWHM but returns standard deviation width

Hi!
I've noticed that pySYD returns a value called the "FWHM", however it seems that the value it's actually returning is the standard deviation width.

Traceback using the current version of pysyd on github:
the returned value FWHM is defined in line 1650 of target.py:
self.params['results'][self.module]['FWHM'].append(gauss[3])
gauss[3] is defined in line 1631 of target.py:
gauss, _ = curve_fit(models.gaussian, self.region_freq, self.region_pow, p0=guesses, bounds=bb, maxfev=1000)
the parameters of this fit are defined in the gaussian definition - lines 83-110 of models.py:

`def gaussian(frequency, offset, amplitude, center, width):
"""
Gaussian model

Observed solar-like oscillations have a Gaussian-like profile and
therefore, detections are modeled as a Gaussian distribution.

Parameters
    frequency : numpy.ndarray
        the frequency array
    offset : float
        the vertical offset
    amplitude : float
        amplitude of the Gaussian
    center : float
        center of the Gaussian
    width : float
        the width of the Gaussian

Returns
    result : np.ndarray
        the Gaussian distribution

"""
model = np.zeros_like(frequency)
model += amplitude*np.exp(-(center-frequency)**2.0/(2.0*width**2))
model += offset
return model`

So if pysyd's reported FWHM is indeed this "width" parameter, then it's not the FWHM. I don't see the FWHM referred to anywhere else in target.py.

Luckily it's quite an easy fix! :) I am new to using git so I don't want to screw everything up by submitting a pull request, so I'll just describe it here.
The simplest change would be to replace line 1650 of target.py:
self.params['results'][self.module]['FWHM'].append(gauss[3])
with:
self.params['results'][self.module]['FWHM'].append(2*np.sqrt(2*np.log(2))*gauss[3])

MC sampling gets stuck

I'm trying to run pySYD on a few Kepler targets, but when running with the --mc 200 option the sampler appears to get stuck at during the sampling, while for other stars it runs flawlessly. It doesn't crash, just hangs indefinitely.

The initial parts of the run seem to work fine and output is produced, it only hangs when it gets to the sampling.

Running on the same target multiple times, the sampler appears to get stuck at different times.

It's not entirely clear to me how the sampling is done, but I know in EMCEE something like this might occur if the sampler gets stuck beyond the bounds of a fit. Perhaps something like that is happening here?

It doesn't appear to be a memory issue, since the ones that get stuck appear to be shorter time series.

I used the pip installable version of pySYD.

Examples:

pysyd run --star KIC4646780 --info info/star_info.csv --mc 200 -vto


Target: KIC4646780

LIGHT CURVE: 43076 lines of data read

Time series cadence: 59 seconds

POWER SPECTRUM: 21677 lines of data read

PS is critically-sampled

PS resolution: 0.391961 muHz


Estimating numax:
PS binned to 195 datapoints
Numax estimate 1: 1040.94 +/- 18.96
S/N: 2.42
Numax estimate 2: 1085.80 +/- 35.76
S/N: 2.39
Numax estimate 3: 1179.34 +/- 61.26
S/N: 1.50
Selecting model 1

Determining background model:
PS binned to 424 data points
Comparing 6 different models:
Model 0: 0 Harvey-like component(s) + white noise fixed
Model 1: 0 Harvey-like component(s) + white noise term
Model 2: 1 Harvey-like component(s) + white noise fixed
Model 3: 1 Harvey-like component(s) + white noise term
Model 4: 2 Harvey-like component(s) + white noise fixed
Model 5: 2 Harvey-like component(s) + white noise term
Based on BIC statistic: model 4
background-corrected PS saved

Running sampling routine:
12%|█▎ | 24/200 [00:02<00:19, 8.95it/s]
18%|█▊ | 36/200 [00:04<00:19, 8.50it/s]

pysyd run --star KIC1435467 --info info/star_info.csv --mc 200 -vto

Target: KIC1435467

LIGHT CURVE: 486239 lines of data read

Time series cadence: 59 seconds

POWER SPECTRUM: 247854 lines of data read

PS is critically-sampled

PS resolution: 0.034280 muHz


Estimating numax:
PS binned to 195 datapoints
Numax estimate 1: 1445.36 +/- 85.66
S/N: 8.81
Numax estimate 2: 1455.28 +/- 93.08
S/N: 30.95
Numax estimate 3: 1481.68 +/- 103.31
S/N: 100.00
Selecting model 3

Determining background model:
PS binned to 424 data points
Comparing 6 different models:
Model 0: 0 Harvey-like component(s) + white noise fixed
Model 1: 0 Harvey-like component(s) + white noise term
Model 2: 1 Harvey-like component(s) + white noise fixed
Model 3: 1 Harvey-like component(s) + white noise term
Model 4: 2 Harvey-like component(s) + white noise fixed
Model 5: 2 Harvey-like component(s) + white noise term
Based on BIC statistic: model 4
background-corrected PS saved

Running sampling routine:
11%|█ | 22/200 [00:16<02:26, 1.22it/s]
21%|██ | 42/200 [00:33<02:10, 1.21it/s]
31%|███ | 62/200 [00:49<01:55, 1.21it/s]
40%|████ | 81/200 [01:05<01:39, 1.20it/s]
50%|████▉ | 99/200 [01:21<01:23, 1.22it/s]
58%|█████▊ | 116/200 [01:35<01:09, 1.21it/s]
67%|██████▋ | 133/200 [01:49<00:55, 1.21it/s]
75%|███████▌ | 150/200 [02:03<00:41, 1.20it/s]
84%|█████�██▎ | 166/200 [02:16<00:28, 1.21it/s]
92%|████��
99%|█████████▉| 198/200 [02:42<00:02, 1.21it/s]
100%|██████████| 200/200 [02:44<00:00, 1.21it/s]

Output parameters:
tau_1: 322.37 +/- 22.77 s
sigma_1: 53.03 +/- 2.68 ppm
tau_2: 112.21 +/- 12.13 s
sigma_2: 45.31 +/- 3.47 ppm
numax_smooth: 1388.91 +/- 11.23 muHz
A_smooth: 0.75 +/- 0.04 ppm^2/muHz
numax_gauss: 1425.56 +/- 11.67 muHz
A_gauss: 0.68 +/- 0.03 ppm^2/muHz
FWHM: 250.91 +/- 13.64 muHz
dnu: 70.48 +/- 0.11 muHz


TESTING INFORMATION:
362/424 points are being used for background fit

----------------------------------------------
------------- MODEL COMPARISONS --------------
----------------------------------------------

Model 0: 0 Harvey-like component(s) + white noise fixed
BIC = 408540.44 | AIC = 1128.56
Model 1: 0 Harvey-like component(s) + white noise term
BIC = 408502.55 | AIC = 1128.45
Model 2: 1 Harvey-like component(s) + white noise fixed
BIC = 402832.79 | AIC = 1112.78
Model 3: 1 Harvey-like component(s) + white noise term
BIC = 402819.23 | AIC = 1112.73
Model 4: 2 Harvey-like component(s) + white noise fixed
BIC = 402375.08 | AIC = 1111.49
Model 5: 2 Harvey-like component(s) + white noise term
BIC = 402388.49 | AIC = 1111.52

The power spectrum mask includes 36370 data points
i.e. the power excess region ~[858.33,2105.04]
D method to estimate dnu ~= 70.34

Median of ED: 51.64
Clip value of ED: 206.58
M method to estimate dnu ~= 70.31
A method to estimate dnu ~= 70.34
D method to estimate dnu ~= 70.34

  • combining results into single csv file

replace int(oversampling_factor) with round(oversampling_factor)


Relevant Materials

Description

The int() function around oversampling_factor causes oversampling_factor to be 0 if it's less than 1 crashing the code. Solution: replace int() with round().

Computing

Please provide (by editing) the following information:

  • OS: macOS
  • Version: 5.9.4
  • Implementation: command line

Attachments

In order to reproduce the issue from our end, please provide both the light curve and power spectrum for the relevant target!

Attach the required data files here and if applicable, any figures or screenshots to help explain your problem.

Other

Add any other relevant information here (e.g., links to related issues or solutions)
See highlighted line in code:
https://github.com/ashleychontos/pySYD/blob/master/src/pysyd/target.py#L365-L371

Summary Checklist:

  • How were you using pySYD when you experienced the issue?
    • CLI
    • API
    • jupyter
  • Did you provide all the relevant information and files so that we can reproduce the error?
    • Yes
    • No
  • Did you check if the issue has already been reported?
    • Yes
      → Was there a proposed workaround or solution?
      • Yes
      • No
      • Idk
    • No
  • Do you know if the issue is version specific?
    • Yes*
    • - [] No
    • Idk
  • Have you identified a workaround or solution?
    • Yes*
    • No
  • Will you be submitting a pull request associated with this issue?
    • Yes
    • No
    • Idk

* If you selected 'Yes' for any of these points, please expand on each of them in more detail below.
Note: If you found any relevant threads, questions, solutions or are submitting a pull request, please remember to provide links for any/all as these are incredibly helpful for future users.

least squares sometimes gets bad initial guess

When running on KIC9787965 I encountered a problem with scipy.optimize.curve_fit.

It looks to me like the initial guess for the fit doesn't make sense to curve_fit.

pysyd run --star KIC9787965 --info info/star_info.csv --mc 200 -vto

KIC9787965_PS.txt
KIC9787965_LC.txt


Target: KIC9787965

LIGHT CURVE: 48996 lines of data read

Time series cadence: 59 seconds

POWER SPECTRUM: 24606 lines of data read

PS is critically-sampled

PS resolution: 0.345294 muHz


Estimating numax:
PS binned to 195 datapoints
Numax estimate 1: 3470.54 +/- 38956.27
S/N: 0.01
Numax estimate 2: 2593.41 +/- 402.45
S/N: 1.00
Numax estimate 3: 2374.59 +/- 378.81
S/N: 1.00
Selecting model 3

Determining background model:
PS binned to 424 data points
Comparing 6 different models:
Model 0: 0 Harvey-like component(s) + white noise fixed
Model 1: 0 Harvey-like component(s) + white noise term
Model 2: 1 Harvey-like component(s) + white noise fixed
Model 3: 1 Harvey-like component(s) + white noise term
Model 4: 2 Harvey-like component(s) + white noise fixed
Model 5: 2 Harvey-like component(s) + white noise term
Based on BIC statistic: model 4
background-corrected PS saved
Traceback (most recent call last):
File "/rds/homes/n/nielsemb/.virtualenvs/pysyd/bin/pysyd", line 11, in
sys.exit(main())
File "/rds/homes/n/nielsemb/.virtualenvs/pysyd/lib/python3.7/site-packages/pysyd/cli.py", line 573, in main
args.func(args)
File "/rds/homes/n/nielsemb/.virtualenvs/pysyd/lib/python3.7/site-packages/pysyd/pipeline.py", line 29, in main
run(args)
File "/rds/homes/n/nielsemb/.virtualenvs/pysyd/lib/python3.7/site-packages/pysyd/pipeline.py", line 93, in run
count = pipe(args.params['stars'], args)
File "/rds/homes/n/nielsemb/.virtualenvs/pysyd/lib/python3.7/site-packages/pysyd/pipeline.py", line 135, in pipe
single.run_syd()
File "/rds/homes/n/nielsemb/.virtualenvs/pysyd/lib/python3.7/site-packages/pysyd/target.py", line 84, in run_syd
self.derive_parameters()
File "/rds/homes/n/nielsemb/.virtualenvs/pysyd/lib/python3.7/site-packages/pysyd/target.py", line 264, in derive_parameters
self.fit_global()
File "/rds/homes/n/nielsemb/.virtualenvs/pysyd/lib/python3.7/site-packages/pysyd/target.py", line 589, in fit_global
self.get_numax_gaussian()
File "/rds/homes/n/nielsemb/.virtualenvs/pysyd/lib/python3.7/site-packages/pysyd/target.py", line 666, in get_numax_gaussian
gauss, _ = curve_fit(models.gaussian, self.region_freq, self.region_pow, p0=guesses, bounds=bb, maxfev=maxfev)
File "/rds/homes/n/nielsemb/.virtualenvs/pysyd/lib/python3.7/site-packages/scipy/optimize/minpack.py", line 801, in curve_fit
**kwargs)
File "/rds/homes/n/nielsemb/.virtualenvs/pysyd/lib/python3.7/site-packages/scipy/optimize/_lsq/least_squares.py", line 808, in least_squares
raise ValueError("x0 is infeasible.")
ValueError: x0 is infeasible.

setup does not work?


Relevant Materials

Description + Fix

I've just installed pySYD for the first time using pip (first just using pip then i cloned the repo and installed it locally) and when i run setup i get a number of 'The filename, directory name, or volume label syntax is incorrect.' errors. The directories are created but no files can be found in them after running the setup.

Looking at the code i see that the way curl is called is .. understandable.. but will not work on all environments. On line 1128 in utils.py you have

subprocess.call(['curl %s > %s' % (infile, outfile)], shell=True)

whereas

subprocess.call(['curl', infile, '>', outfile], shell=True)

would be better as it works on latest python and on both windows and linux.
Making this change locally fixes the problem.

Computing

  • OS: Windows 11 Pro v22H2 OS build 22621.1992
  • Version: latest from git and latest from pip
  • Implementation: Conda 3-2023-07-1 running python 3.11.4

Other

I didn't want to do the whole pull/sub for one line but can do if you would prefer although it is probably easier for you to do the one line change assuming you agree with it.


Summary Checklist:

  • How were you using pySYD when you experienced the issue?
    • CLI
    • API
    • jupyter
  • Did you provide all the relevant information and files so that we can reproduce the error?
    • - [x ] Yes
    • No
  • Did you check if the issue has already been reported?
    • Yes
      → Was there a proposed workaround or solution?
      • Yes
      • No
      • Idk
    • No
  • Do you know if the issue is version specific?
    • Yes*
    • No
    • Idk
  • Have you identified a workaround or solution?
    • Yes*
    • No
  • Will you be submitting a pull request associated with this issue?
    • Yes
    • No
    • Idk

* If you selected 'Yes' for any of these points, please expand on each of them in more detail below.
Note: If you found any relevant threads, questions, solutions or are submitting a pull request, please remember to provide links for any/all as these are incredibly helpful for future users.

Details of the solution are in the main text


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.