akdeniz-uzay / a-track Goto Github PK
View Code? Open in Web Editor NEWA-Track: Detecting Moving Objects in FITS images.
License: GNU General Public License v3.0
A-Track: Detecting Moving Objects in FITS images.
License: GNU General Public License v3.0
Öncelikle herkese selamlar,
Konunun tartışılması açısından bu konuyu issues'a taşıyayım dedim:) Dünkü toplantıda @tolgaatay hocanın hatırlatması ile detect.py modülü için asteroidlerin genel bir "Vmax" ve "Vmin" değerlerini belirlemek adına MPC ve NASA ADS üzerinde bir takım araştırmalar yaptım. @muratxkaplan hocanın tavsiyeleri doğrultusunda buradaki literatürdeki -Sky Motion ("/sec)- değerlerini inceledim. Özellikle NEO'ların "Atens" grubunu ve de uzak olmaları bakımından da Jupiter Trojans'larını inceledim. Bununla birlikte bizim kullandığımız veri setlerinin muhtemelen tamamı (en azından bendekiler) binning=2 de alınmış. Yani herbir piksel ölçeğimiz yaklaşık olarak 0.62". Binning=1 için bu değer 0.31"/piksel. Bende olan veri setlerini incelediğimde poz süreleri 100s - 800s arasında değişiyor. Bu bilgiler şimdilik dursun...
MPC üzerinde Atens ve Trojans'ların tamamınının Sky Motion ("/sec) değerlerini tarayan bir script yazdığım ve de Atens için;
Parametreler ("/sec) | Nesne |
---|---|
Vmax = 0.29 | 2005 VN5 |
Vmin = 0.013 | 2009 HE60 |
Trojans;
Parametreler ("/sec) | Nesne |
---|---|
Vmax = 0.014 | 2012 TY123 |
Vmin = 0.0001 | Protesilaos |
Bu veriler göz önünde bulundurulursa, binning 2 ile 0.62 "/px ölçekli verilerimiz için ortalama 100 saniye (s) poz süresi verilen bir görüntüde yavaş Trojanları asla farkedemeyiz. Yavaş için en az 105 dk poz vermemiz gerekli :) En hızlısını ise -bizim algoritmamız ile- en az 45 s poz vererek yakalayabiliriz.
Aten grubunun en hızlısı için en az 2 sn poz verilmesi yeterli olacaktır. En yavaşı içinse en az 50 s poz vermek yeterli olacaktır.
Sonuç olarak, bizler ardışık görüntülerde asteroidlerimiz için minimum 1 piksel yer değiştirme şartı aradığımız için Vmin değeri ön tanımlı olarak binning 2 için 0.62 "/sec (bin=1 için 0.31 "/sec) olmuş oluyor. Sadece belirli grupların aranması için ve de bulunanın hangi gruba dahil olduğu gibi tespitler için bu parametreler kullanılabilir. Bunun koda dönüştürülmesine öneriler de bittikten sonra başlıyorum. Özellikle @muratxkaplan hocadan öneriler, katkılar ve de düzeltmeler bekliyorum. Pek çok yanıldığım konu olabilir çünkü:)
Not: Görüntülerde 100-800 s aralığında değişen poz süreleri gördüm. Vmax parametresinin 0.29 "/sec olması durumunda 800 s poz süresi için interval değerimiz yaklaşık olarak 374 piksel oluyor. Bu durumu ayrıca değerlendirmemiz lazım diye düşünüyorum. Şimdilik benim ekleyeceklerim bu kadar:)
Görüşmek üzere:)
Fixed align.py's affineremap header copying section with following changes:
Line 51:
tofits(alifilepath, data, hdr = None, verbose = verbose)
to:
if hdr:
tofits(alifilepath, data, hdr = hdr, verbose = verbose)
else:
tofits(alifilepath, data, hdr = None, verbose = verbose)
Hello, I followed the step-by-step described for installation, however when I use the command: python3 atrack.py fits_dir "the following message appears: Python can not import alipy. Make sure alipy is installed". The problem is that I have alipy installed correctly. could you help me with this problem? Is there any documentation available? Thank you!
Hi!
I am trying to install and test A-Track and I have encountered some issues:
I used an Ubuntu 20 image with python 3.8.5 and run the installation script and the installation finished successfully.
I am running Ubuntu in VirtualBox and have allocated 4 CPUs to it and 2 Gigs of memory.
Then on trying to run it I encountered the following issues:
osboxes@osboxes:~/soft/atrack$ python3 atrack.py -a /home/osboxes/soft/images/test/
Python cannot import sources.py. Make sure sources.py is in the same folder as atrack.py.
In order to understand what was the issue, I created this simple file to see what is the problem
osboxes@osboxes:~/soft/atrack$ cat test.py
import sources
and then I run it and I got thie exception
osboxes@osboxes:~/soft/atrack$ python3 test.py
Traceback (most recent call last):
File "test.py", line 1, in <module>
import sources
File "/home/osboxes/soft/atrack/sources.py", line 24, in <module>
from astrolib import astronomy
ModuleNotFoundError: No module named 'astrolib'
after copying astrolib from https://github.com/yucelkilic/astrolib
osboxes@osboxes:~/soft/atrack$ python3 test.py
Traceback (most recent call last):
File "test.py", line 1, in <module>
import sources
File "/home/osboxes/soft/atrack/sources.py", line 24, in <module>
from astrolib import astronomy
File "/home/osboxes/soft/atrack/astrolib/astronomy.py", line 12, in <module>
from ccdproc import ImageFileCollection
ModuleNotFoundError: No module named 'ccdproc'
after sudo pip3 instlal ccdproc
osboxes@osboxes:~/soft/atrack$ python3 test.py
WARNING: AstropyDeprecationWarning: block_reduce was moved to the astropy.nddata.blocks module. Please update your import statement. [astropy.nddata.utils]
WARNING: AstropyDeprecationWarning: block_replicate was moved to the astropy.nddata.blocks module. Please update your import statement. [astropy.nddata.utils]
Traceback (most recent call last):
File "test.py", line 1, in <module>
import sources
File "/home/osboxes/soft/atrack/sources.py", line 24, in <module>
from astrolib import astronomy
File "/home/osboxes/soft/atrack/astrolib/astronomy.py", line 24, in <module>
import sep
ModuleNotFoundError: No module named 'sep'
after sudo pip3 install sep
sboxes@osboxes:~/soft/atrack$ python3 test.py
WARNING: AstropyDeprecationWarning: block_reduce was moved to the astropy.nddata.blocks module. Please update your import statement. [astropy.nddata.utils]
WARNING: AstropyDeprecationWarning: block_replicate was moved to the astropy.nddata.blocks module. Please update your import statement. [astropy.nddata.utils]
Traceback (most recent call last):
File "test.py", line 1, in <module>
import sources
File "/home/osboxes/soft/atrack/sources.py", line 24, in <module>
from astrolib import astronomy
File "/home/osboxes/soft/atrack/astrolib/astronomy.py", line 25, in <module>
import sewpy
ModuleNotFoundError: No module named 'sewpy'
after a manual installation of
https://github.com/megalut/sewpy
osboxes@osboxes:~/soft/sewpy$ sudo python3 setup.py install
running install
running build
running build_py
running install_lib
creating /usr/local/lib/python3.8/dist-packages/sewpy
copying build/lib/sewpy/sewpy.py -> /usr/local/lib/python3.8/dist-packages/sewpy
copying build/lib/sewpy/__init__.py -> /usr/local/lib/python3.8/dist-packages/sewpy
byte-compiling /usr/local/lib/python3.8/dist-packages/sewpy/sewpy.py to sewpy.cpython-38.pyc
byte-compiling /usr/local/lib/python3.8/dist-packages/sewpy/__init__.py to __init__.cpython-38.pyc
running install_egg_info
Writing /usr/local/lib/python3.8/dist-packages/sewpy-1.0dev.egg-info
I received no more errors.
But then when I try to run A-track I get the following exception :
osboxes@osboxes:~/soft/atrack$ ls /home/osboxes/soft/images2
atrack L_2020-06-06_22-32-12_Bin1x1_120s__10C.fit
L_2020-06-06_22-26-43_Bin1x1_120s__10C.fit L_2020-06-06_22-34-35_Bin1x1_120s__10C.fit
L_2020-06-06_22-29-33_Bin1x1_120s__10C.fit L_2020-06-06_22-37-35_Bin1x1_120s__10C.fit
osboxes@osboxes:~/soft/atrack$ python3 atrack.py -a /home/osboxes/soft/images2
WARNING: AstropyDeprecationWarning: block_reduce was moved to the astropy.nddata.blocks module. Please update your import statement. [astropy.nddata.utils]
WARNING: AstropyDeprecationWarning: block_replicate was moved to the astropy.nddata.blocks module. Please update your import statement. [astropy.nddata.utils]
Creating catalog files... Complete!
Catalog files are saved as *affineremap.pysexcat.
Elapsed time: 0 min 0 sec.
Building master catalog file... Complete!
Master catalog file is saved as master.pysexcat.
Elapsed time: 0 min 0 sec.
Detecting candidates... Complete!
Candidates for each image are saved as *affineremap.cnd.
Elapsed time: 0 min 0 sec.
Detecting moving objects...
multiprocessing.pool.RemoteTraceback:
"""
Traceback (most recent call last):
File "/usr/lib/python3.8/multiprocessing/pool.py", line 125, in worker
result = (True, func(*args, **kwds))
File "/usr/lib/python3.8/multiprocessing/pool.py", line 48, in mapstar
return list(map(*args))
File "/home/osboxes/soft/atrack/asteroids.py", line 356, in detect_segments
partition = partitions(workload)[int(processor)]
IndexError: list index out of range
"""
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/home/osboxes/soft/atrack/asteroids.py", line 511, in detect_lines
pool.map(detect_segments, cmds, 1)
File "/usr/lib/python3.8/multiprocessing/pool.py", line 364, in map
return self._map_async(func, iterable, mapstar, chunksize).get()
File "/usr/lib/python3.8/multiprocessing/pool.py", line 771, in get
raise self._value
IndexError: list index out of range
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "atrack.py", line 170, in <module>
lines = asteroids.detect_lines(outdir, fitsdir)
File "/home/osboxes/soft/atrack/asteroids.py", line 514, in detect_lines
detect_segments((catdir, fitsdir, 0))
File "/home/osboxes/soft/atrack/asteroids.py", line 356, in detect_segments
partition = partitions(workload)[int(processor)]
IndexError: list index out of range
Any help would be appreciated.
Thanks!
Hi!
I wanted to post a little issue I faced, which is that when I use for the first time the -a option (not to align the images) then the process fails.
I am using aligned images so there is no need to align again.
If, however, I use the option -a even once, then the problem goes away:
Below is an exert from running atrack for the first time on a set of images with the -a option (fails). Then running it without the -a option (ok) and then running it with the -a option (ok).
Thank you in advance,
Petros
osboxes@osboxes:~/soft/atrack$ python3 atrack.py -a /home/osboxes/soft/img-test/ --skip-mpcreport
WARNING: AstropyDeprecationWarning: block_reduce was moved to the astropy.nddata.blocks module. Please update your import statement. [astropy.nddata.utils]
WARNING: AstropyDeprecationWarning: block_replicate was moved to the astropy.nddata.blocks module. Please update your import statement. [astropy.nddata.utils]
Creating catalog files... Complete!
Catalog files are saved as *affineremap.pysexcat.
Elapsed time: 0 min 0 sec.
Building master catalog file... Complete!
Master catalog file is saved as master.pysexcat.
Elapsed time: 0 min 0 sec.
Detecting candidates... Complete!
Candidates for each image are saved as *affineremap.cnd.
Elapsed time: 0 min 0 sec.
Detecting moving objects...
multiprocessing.pool.RemoteTraceback:
"""
Traceback (most recent call last):
File "/usr/lib/python3.8/multiprocessing/pool.py", line 125, in worker
result = (True, func(*args, **kwds))
File "/usr/lib/python3.8/multiprocessing/pool.py", line 48, in mapstar
return list(map(*args))
File "/home/osboxes/soft/atrack/asteroids.py", line 356, in detect_segments
partition = partitions(workload)[int(processor)]
IndexError: list index out of range
"""
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/home/osboxes/soft/atrack/asteroids.py", line 511, in detect_lines
pool.map(detect_segments, cmds, 1)
File "/usr/lib/python3.8/multiprocessing/pool.py", line 364, in map
return self._map_async(func, iterable, mapstar, chunksize).get()
File "/usr/lib/python3.8/multiprocessing/pool.py", line 771, in get
raise self._value
IndexError: list index out of range
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "atrack.py", line 170, in <module>
lines = asteroids.detect_lines(outdir, fitsdir)
File "/home/osboxes/soft/atrack/asteroids.py", line 514, in detect_lines
detect_segments((catdir, fitsdir, 0))
File "/home/osboxes/soft/atrack/asteroids.py", line 356, in detect_segments
partition = partitions(workload)[int(processor)]
IndexError: list index out of range
osboxes@osboxes:~/soft/atrack$ python3 atrack.py /home/osboxes/soft/img-test/ --skip-mpcreport
WARNING: AstropyDeprecationWarning: block_reduce was moved to the astropy.nddata.blocks module. Please update your import statement. [astropy.nddata.utils]
WARNING: AstropyDeprecationWarning: block_replicate was moved to the astropy.nddata.blocks module. Please update your import statement. [astropy.nddata.utils]
Aligning images... Complete!
Aligned images are saved as *affineremap.fits.
Elapsed time: 0 min 4 sec.
Creating catalog files... Complete!
Catalog files are saved as *affineremap.pysexcat.
Elapsed time: 0 min 5 sec.
Building master catalog file... Complete!
Master catalog file is saved as master.pysexcat.
Elapsed time: 0 min 6 sec.
Detecting candidates... Complete!
Candidates for each image are saved as *affineremap.cnd.
Elapsed time: 0 min 12 sec.
Detecting moving objects...
Moving object detection completed.
Elapsed time: 0 min 28 sec.
========================================================
MOVING OBJECTS:
ObjectID FileID Flags x y R.A. (J2000) ... Background Mag MagErr FWHM Elongation Sky Motion
pix pix ... ct mag mag pix arcsec / min
-------- ------ ----- --------- -------- ------------- ... ---------- -------- ------ ----- ---------- ------------
1 0 3 605.1382 692.7117 18:18:45.4532 ... 1638.459 -14.2136 0.0076 46.75 1.883 0.12
1 2 0 579.6606 674.6077 18:18:48.8527 ... 1639.727 -10.7200 0.0335 8.28 1.662 0.12
1 3 3 611.3987 698.2013 18:18:44.4365 ... 1628.014 -11.7545 0.0187 11.34 1.675 0.12
1 4 0 509.9719 624.7684 18:18:58.2095 ... 1596.471 -11.0898 0.0293 7.99 1.646 0.12
1 4 3 613.7111 700.4058 18:18:44.0302 ... 1628.215 -13.1827 0.0118 31.63 1.419 0.12
2 0 3 647.5764 668.6549 18:18:49.2387 ... 1667.003 -11.6909 0.0201 12.06 1.701 0.52
2 3 0 637.0912 572.9730 18:19:06.0125 ... 1650.647 -9.9202 0.0517 4.36 1.251 0.52
2 4 0 642.0468 617.5005 18:18:58.2056 ... 1670.842 -9.4873 0.0654 5.53 1.364 0.52
4 1 2 1223.9995 632.0355 18:18:50.0897 ... 1524.875 -8.9934 0.0473 1.99 1.197 0.59
4 3 0 1205.1390 740.8665 18:18:31.3378 ... 1508.630 -8.5291 0.1135 4.48 1.243 0.59
4 4 0 1214.4993 686.9253 18:18:40.6322 ... 1515.009 -8.2646 0.1102 2.86 1.569 0.59
========================================================
UNCERTAIN OBJECTS:
ObjectID FileID Flags x y R.A. (J2000) ... Background Mag MagErr FWHM Elongation Sky Motion
pix pix ... ct mag mag pix arcsec / min
-------- ------ ----- -------- -------- ------------- ... ---------- ------- ------ ---- ---------- ------------
3 1 0 867.9043 42.3083 18:20:36.1857 ... 1579.002 -8.4019 0.0998 3.46 1.334 0.01
3 3 0 867.5408 41.8073 18:20:36.2765 ... 1578.461 -9.3410 0.0700 4.03 1.242 0.01
3 4 0 868.3584 42.7328 18:20:36.1073 ... 1574.120 -8.8675 0.0802 3.55 1.147 0.01
5 2 3 643.0405 618.4986 18:18:58.0222 ... 1678.731 -9.7712 0.0534 3.58 1.242 0.07
5 3 0 663.3389 606.4625 18:18:59.9241 ... 1671.506 -9.4786 0.0622 5.37 1.985 0.07
5 4 0 647.5551 615.7062 18:18:58.4653 ... 1672.330 -9.4462 0.0685 7.27 1.857 0.07
A-Track has detected 0 moving objects and 0 uncertain objects.
Creating PNG files...
/home/osboxes/soft/img-test//atrack/L_2020-08-17_22-44-18_Bin1x1_120s__10C.reg_mono_wcs_affineremap.fits converted to png.
/home/osboxes/soft/img-test//atrack/L_2020-08-17_22-47-18_Bin1x1_120s__10C.reg_mono_wcs_affineremap.fits converted to png.
/home/osboxes/soft/img-test//atrack/L_2020-08-17_23-00-50_Bin1x1_120s__10C.reg_mono_wcs_affineremap.fits converted to png.
/home/osboxes/soft/img-test//atrack/L_2020-08-17_23-26-29_Bin1x1_120s__10C.reg_mono_wcs_affineremap.fits converted to png.
/home/osboxes/soft/img-test//atrack/L_2020-08-17_23-46-04_Bin1x1_120s__10C.reg_mono_wcs_affineremap.fits converted to png.
PNG conversion completed.
Elapsed Time: 0 min 30 sec.
Creating GIF (animation) file...
/home/osboxes/soft/img-test//atrack/animation.gif created.
Elapsed Time: 0 min 30 sec.
osboxes@osboxes:~/soft/atrack$ python3 atrack.py -a /home/osboxes/soft/img-test/ --skip-mpcreport
WARNING: AstropyDeprecationWarning: block_reduce was moved to the astropy.nddata.blocks module. Please update your import statement. [astropy.nddata.utils]
WARNING: AstropyDeprecationWarning: block_replicate was moved to the astropy.nddata.blocks module. Please update your import statement. [astropy.nddata.utils]
Creating catalog files... Complete!
Catalog files are saved as *affineremap.pysexcat.
Elapsed time: 0 min 1 sec.
Building master catalog file... Complete!
Master catalog file is saved as master.pysexcat.
Elapsed time: 0 min 1 sec.
Detecting candidates... Complete!
Candidates for each image are saved as *affineremap.cnd.
Elapsed time: 0 min 7 sec.
Detecting moving objects...
Moving object detection completed.
Elapsed time: 0 min 25 sec.
========================================================
MOVING OBJECTS:
ObjectID FileID Flags x y R.A. (J2000) ... Background Mag MagErr FWHM Elongation Sky Motion
pix pix ... ct mag mag pix arcsec / min
-------- ------ ----- --------- -------- ------------- ... ---------- -------- ------ ----- ---------- ------------
1 0 3 605.1382 692.7117 18:18:45.4532 ... 1638.459 -14.2136 0.0076 46.75 1.883 0.12
1 2 0 579.6606 674.6077 18:18:48.8527 ... 1639.727 -10.7200 0.0335 8.28 1.662 0.12
1 3 3 611.3987 698.2013 18:18:44.4365 ... 1628.014 -11.7545 0.0187 11.34 1.675 0.12
1 4 0 509.9719 624.7684 18:18:58.2095 ... 1596.471 -11.0898 0.0293 7.99 1.646 0.12
1 4 3 613.7111 700.4058 18:18:44.0302 ... 1628.215 -13.1827 0.0118 31.63 1.419 0.12
2 0 3 647.5764 668.6549 18:18:49.2387 ... 1667.003 -11.6909 0.0201 12.06 1.701 0.52
2 3 0 637.0912 572.9730 18:19:06.0125 ... 1650.647 -9.9202 0.0517 4.36 1.251 0.52
2 4 0 642.0468 617.5005 18:18:58.2056 ... 1670.842 -9.4873 0.0654 5.53 1.364 0.52
4 1 2 1223.9995 632.0355 18:18:50.0897 ... 1524.875 -8.9934 0.0473 1.99 1.197 0.59
4 3 0 1205.1390 740.8665 18:18:31.3378 ... 1508.630 -8.5291 0.1135 4.48 1.243 0.59
4 4 0 1214.4993 686.9253 18:18:40.6322 ... 1515.009 -8.2646 0.1102 2.86 1.569 0.59
========================================================
UNCERTAIN OBJECTS:
ObjectID FileID Flags x y R.A. (J2000) ... Background Mag MagErr FWHM Elongation Sky Motion
pix pix ... ct mag mag pix arcsec / min
-------- ------ ----- -------- -------- ------------- ... ---------- ------- ------ ---- ---------- ------------
3 1 0 867.9043 42.3083 18:20:36.1857 ... 1579.002 -8.4019 0.0998 3.46 1.334 0.01
3 3 0 867.5408 41.8073 18:20:36.2765 ... 1578.461 -9.3410 0.0700 4.03 1.242 0.01
3 4 0 868.3584 42.7328 18:20:36.1073 ... 1574.120 -8.8675 0.0802 3.55 1.147 0.01
5 2 3 643.0405 618.4986 18:18:58.0222 ... 1678.731 -9.7712 0.0534 3.58 1.242 0.07
5 3 0 663.3389 606.4625 18:18:59.9241 ... 1671.506 -9.4786 0.0622 5.37 1.985 0.07
5 4 0 647.5551 615.7062 18:18:58.4653 ... 1672.330 -9.4462 0.0685 7.27 1.857 0.07
A-Track has detected 0 moving objects and 0 uncertain objects.
Creating PNG files...
/home/osboxes/soft/img-test//atrack/L_2020-08-17_22-44-18_Bin1x1_120s__10C.reg_mono_wcs_affineremap.fits converted to png.
/home/osboxes/soft/img-test//atrack/L_2020-08-17_22-47-18_Bin1x1_120s__10C.reg_mono_wcs_affineremap.fits converted to png.
/home/osboxes/soft/img-test//atrack/L_2020-08-17_23-00-50_Bin1x1_120s__10C.reg_mono_wcs_affineremap.fits converted to png.
/home/osboxes/soft/img-test//atrack/L_2020-08-17_23-26-29_Bin1x1_120s__10C.reg_mono_wcs_affineremap.fits converted to png.
/home/osboxes/soft/img-test//atrack/L_2020-08-17_23-46-04_Bin1x1_120s__10C.reg_mono_wcs_affineremap.fits converted to png.
PNG conversion completed.
Elapsed Time: 0 min 27 sec.
Creating GIF (animation) file...
/home/osboxes/soft/img-test//atrack/animation.gif created.
Elapsed Time: 0 min 27 sec.
Dear all,
is this package usable for everyone? I'm interesting in something like this to manage a large amount of data that our telescope produce every single night. I'm pretty sure that there are some asteroids hidden in our fits images and I would like to find them. We generate about 13Gb of images every night.
please, let me know
best,
MilE
We use the SExtractor for detecting sources on FITS images. So, you should install SExtractor properly...
In Ubuntu >=12.10 or Debian based OSs sextractor's name changed as sextractor from sex. Alipy and pysex still use it as sex.
If alipy/pysex returns an error massage like that "RuntimeError: No cat : call makecat first!". Please run the following command(s);
To fix that issue use command line below:
sudo ln -s /usr/bin/sextractor /usr/bin/sex
Or,
To fix this issues, remove the SExtractor you installed from the Ubuntu's repository with;
$ sudo apt-get remove sextractor
$ wget https://db.tt/tEqIhvGN
Click and install the downloaded debian file...
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.