croatianmeteornetwork / rms Goto Github PK
View Code? Open in Web Editor NEWRPi Meteor Station
Home Page: https://globalmeteornetwork.org/
License: GNU General Public License v3.0
RPi Meteor Station
Home Page: https://globalmeteornetwork.org/
License: GNU General Public License v3.0
When there is a thunder storm whether. I wish RMS system could capture the red elf (red jet / blue jet) in the sky.
So, color images are necessary. Or else only the grey elf is captured
What should I install to run your script? I'm explaining what I mean. Following this description - http://www.instructables.com/id/Raspberry-Pi-Meteor-Station/ - I came to the point where the script says to me:
ERROR: Astropy requires Python 3.5 or later
I'm not a linux guy, and I do not understand the coexistence of two Python (python2.7 and python3.5 on my raspbian) at the same time. The dependencies required for the RMS operation are for versions 2.7 and 3.5 or only in 2.7, for example - python-scipy, python-matplotliblibblas-dev, python-opencv python-imaging-tk? I do not understand this.
I will be happy for every clues:)
Built RMS on Windows and then Ubuntu to instructions to run SkyFit2 using python -m Utils.SkyFit2 C:\Users\sholbeche\Downloads\20210807_UK0038\UK0038_20210807_202419_529241 --config .
Both instances run but fits images are not shown in SkyFit2 but histogram shows light detected. Using python -m RMS.Astrometry.SkyFit C:\Users\sholbeche\Downloads\20210807_UK0038\UK0038_20210807_202419_529241 --config .
images are shown ok
The error in SkyFit2 on each screen refresh is:
Traceback (most recent call last):
File "C:\Users\sholbeche\Anaconda3\envs\rms\lib\site-packages\pyqtgraph\graphicsItems\ImageItem.py", line 834, in paint
self.render()
File "C:\Users\sholbeche\Workspace\Meteors\RMS\RMS\Routines\CustomPyqtgraphClasses.py", line 644, in render
efflut = pg.fn.rescaleData(ind, scale=255./levdiff,
AttributeError: module 'pyqtgraph' has no attribute 'fn'
I got this error during installation on python 3.8.5
$ sudo python3 setup.py install
running install
running bdist_egg
running egg_info
writing RMS.egg-info/PKG-INFO
writing dependency_links to RMS.egg-info/dependency_links.txt
writing requirements to RMS.egg-info/requires.txt
writing top-level names to RMS.egg-info/top_level.txt
reading manifest file 'RMS.egg-info/SOURCES.txt'
writing manifest file 'RMS.egg-info/SOURCES.txt'
installing library code to build/bdist.linux-x86_64/egg
running install_lib
running build_py
running build_ext
building 'RMS.Astrometry.CyFunctions' extension
x86_64-linux-gnu-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/usr/lib/python3/dist-packages/numpy/core/include -I/usr/lib/python3/dist-packages/numpy/core/include -I/usr/include/python3.8 -c RMS/Astrometry/CyFunctions.c -o build/temp.linux-x86_64-3.8/RMS/Astrometry/CyFunctions.o
In file included from /usr/lib/python3/dist-packages/numpy/core/include/numpy/ndarraytypes.h:1822,
from /usr/lib/python3/dist-packages/numpy/core/include/numpy/ndarrayobject.h:12,
from /usr/lib/python3/dist-packages/numpy/core/include/numpy/arrayobject.h:4,
from RMS/Astrometry/CyFunctions.c:614:
/usr/lib/python3/dist-packages/numpy/core/include/numpy/npy_1_7_deprecated_api.h:17:2: warning: #warning "Using deprecated NumPy API, disable it with " "#define NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION" [-Wcpp]
17 | #warning "Using deprecated NumPy API, disable it with " \
| ^~~~~~~
RMS/Astrometry/CyFunctions.c: In function ‘__Pyx_InitCachedConstants’:
RMS/Astrometry/CyFunctions.c:8392:290: error: macro "__Pyx_PyCode_New" requires 16 arguments, but only 15 given
8392 | yx_empty_tuple, __pyx_tuple__8, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_RMS_Astrometry_CyFunctions_pyx, __pyx_n_s_subsetCatalog, 70, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__9)) __PYX_ERR(0, 70, __pyx_L1_error)
| ^
RMS/Astrometry/CyFunctions.c:330: note: macro "__Pyx_PyCode_New" defined here
330 | #define __Pyx_PyCode_New(a, p, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\
|
RMS/Astrometry/CyFunctions.c:8392:33: error: ‘__Pyx_PyCode_New’ undeclared (first use in this function); did you mean ‘PyCode_New’?
8392 | __pyx_codeobj__9 = (PyObject*)__Pyx_PyCode_New(5, 0, 14, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__8, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_RMS_Astrometry_CyFunctions_pyx, __pyx_n_s_subsetCatalog, 70, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__9)) __PYX_ERR(0, 70, __pyx_L1_error)
| ^~~~~~~~~~~~~~~~
| PyCode_New
RMS/Astrometry/CyFunctions.c:8392:33: note: each undeclared identifier is reported only once for each function it appears in
RMS/Astrometry/CyFunctions.c:8404:290: error: macro "__Pyx_PyCode_New" requires 16 arguments, but only 15 given
8404 | pyx_empty_tuple, __pyx_tuple__10, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_RMS_Astrometry_CyFunctions_pyx, __pyx_n_s_matchStars, 138, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__11)) __PYX_ERR(0, 138, __pyx_L1_error)
| ^
RMS/Astrometry/CyFunctions.c:330: note: macro "__Pyx_PyCode_New" defined here
330 | #define __Pyx_PyCode_New(a, p, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\
|
RMS/Astrometry/CyFunctions.c:8416:292: error: macro "__Pyx_PyCode_New" requires 16 arguments, but only 15 given
8416 | yx_empty_tuple, __pyx_tuple__12, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_RMS_Astrometry_CyFunctions_pyx, __pyx_n_s_cyraDecToXY, 211, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__13)) __PYX_ERR(0, 211, __pyx_L1_error)
| ^
RMS/Astrometry/CyFunctions.c:330: note: macro "__Pyx_PyCode_New" defined here
330 | #define __Pyx_PyCode_New(a, p, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\
|
RMS/Astrometry/CyFunctions.c:8428:292: error: macro "__Pyx_PyCode_New" requires 16 arguments, but only 15 given
8428 | yx_empty_tuple, __pyx_tuple__14, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_RMS_Astrometry_CyFunctions_pyx, __pyx_n_s_cyXYToRADec, 334, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__15)) __PYX_ERR(0, 334, __pyx_L1_error)
| ^
RMS/Astrometry/CyFunctions.c:330: note: macro "__Pyx_PyCode_New" defined here
330 | #define __Pyx_PyCode_New(a, p, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\
|
RMS/Astrometry/CyFunctions.c: In function ‘__Pyx_CreateCodeObjectForTraceback’:
RMS/Astrometry/CyFunctions.c:10774:5: error: macro "__Pyx_PyCode_New" requires 16 arguments, but only 15 given
10774 | );
| ^
RMS/Astrometry/CyFunctions.c:330: note: macro "__Pyx_PyCode_New" defined here
330 | #define __Pyx_PyCode_New(a, p, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\
|
RMS/Astrometry/CyFunctions.c:10758:15: error: ‘__Pyx_PyCode_New’ undeclared (first use in this function); did you mean ‘PyCode_New’?
10758 | py_code = __Pyx_PyCode_New(
| ^~~~~~~~~~~~~~~~
| PyCode_New
error: command 'x86_64-linux-gnu-gcc' failed with exit status 1
I got the following issues when running RMS:
2020/05/21 15:58:28-INFO-DownloadPlatepar-line:23 - Checking for new platepar on the server... 2020/05/21 15:58:28-DEBUG-DownloadPlatepar-line:24 - Establishing SSH connection to: gmn.uwo.ca:22... 2020/05/21 15:58:29-ERROR-UploadManager-line:51 - Failed loading /root/.ssh/id_rsa[Errno 2] No such file or directory: u'/root/.ssh/id_rsa' 2020/05/21 15:58:29-INFO-Reprocess-line:80 - No platepar file found!
Any help to this?
The FF frames are stored as 8bit FITS extensions. For the MAXPIXEL, MAXFRAME and AVEPIXEL extensions this is not an issue, but for the STDPIXEL frame the use of 8bits reduces the sensitivity, as the majority of STDPIXEL values are 1, with long tail to values of about 40 (out of 255). As a result, computing significance through (MAXPIXEL - AVEPIXEL) / STDPIXEL adds noise due to the lack of dynamic range in the STDPIXEL frame.
The FITS standard offers the BSCALE and BZERO keywords to apply a scaling and offset factor to scale the 8bit data. In astropy
, the presence of these keywords in the extension header will be applied when reading the data of the extension, converting the 8bit data to floating point on the fly. For more information, see https://docs.astropy.org/en/stable/io/fits/usage/image.html.
For example for RMS, you could already get a factor of 10 more dynamic range by setting BSCALE to 0.1 in the STDPIXEL frame.
As a user, I want to know if a meteor camera had “skipped frames” during the night (so that I can investigate and fix the problem).
Skipped frames occur when there is more than 9 seconds between chunks of 256 frames. Skipped frames can be caused by a number of issues (CPU throttling due to fan issues, camera connection issues, camera power issues, etc) and can result in meteors being missed.
—
Proposed solution: Use the time stamp in the .fit filenames to show visually on the “captured stack” image when a skipped frame has occurred.
—
For example, a coloured border could be placed around a frame when there is a gap of more than 9 seconds from the previous frame. In the attached (very rough) mockup 01, an orange border is used to show a small gap (maybe 10-30 seconds?) and a red border is used to show a large gap (maybe >30 seconds?).
Alternatively, a blank frame could be inserted where a gap of more than 9 seconds occurred. In the attached (very rough) mockup 02, an orange blank frame shows a small time gap and a red blank frame shows a large time gap.
—
Side note… It doesn’t have to be just “orange” or “red”… it could be a gradual colour shift from black (<=9 seconds) through orange to red.
Side note… There are manual ways to check for “skipped frames” (eg. watch the time lapse video or review the syslog files) but these require manual effort (which means that many people will forget or not bother). Also, showing the problem on the captured stack means that anyone can use Istrastream to quickly check anyone else’s camera on any date to see if a meteor was missed due to skipped frames.
I installed RMS from scratch on my Ubuntu Mate (Release 22.04.2 LTS (Jammy Jellyfish) 64-bit). Installation took around 70 - 80 minutes. The I tried to run skyfit2 using command "python -m Utils.SkyFit2 &". Then I got the error message "ModuleNotFoundError: No module named 'pyqtgraph'". Then I installed the module using "pip install pyqtgraph".
New joiners in the UK are reporting that some camera modules are now being shipped with a different hardcoded admin password. Previously the password was blank. The DVR-IP module assumes a blank password, and doesn't allow us to easily pass any value in. However i already wanted to make changes to this lib to support Python 2.7 so at the same time i will investigate support for password protected cameras.
mine info off YT video
also note MM's recommendation (for southern sky, at least)
my "top tip" for platepars is to switch to the BSC5 catalogue. The default GAIA catalogue doesn't include bright stars which makes it tricky to recognise constellations even if you do know the sky!
It might be handy to give a few options for cameras in the .config file. It took me a while to figure out I just had to put a 0 to replace this line for a CCTV analog camera.
#analog camera
device: 0
#IP camera
#device: rtspsrc location=rtsp://192.168.42.10:554/user=admin&password=&channel=1&stream=0.sdp ! rtph264depay ! queue ! h264parse ! omxh264dec ! queue ! videoconvert ! appsink sync=1 ; device id
The setup/requirements are using a development branch of pyqtgraph. Thats quite risky as it means that we could pick up untested changes, or RMS might be disabled if a bad checkin is made by one of the QT developers.
I will test if we can switch to the production branch
Also, we don't need a special build of python-dvr any more, this is now in pypi so I'll switch RMS over to that. I've been using it on several of my machines for months. This will remove two special-cases from the environment
The files on log directory aren't deleted automatically. Need to implement a logic to avoid folder from growing indefinitely.
The comment at
https://github.com/CroatianMeteorNetwork/RMS/blob/master/RMS/StartCapture.py#L580
# Check if there is a processed archived dir for every captured dir
I don't think this check actually happens, maybe the comment is out of date. I don't think it is a good idea to reprocess after the archive directory is deleted, the actual checks implemented are much better.
Since the CAL-format doesn't (yet?) understand the new radial distortion types, there is a crash in RMS:
2021/05/21 02:43:57-INFO-Reprocess-line:320 - Flat saved to: /home/pi/RMS_data/CapturedFiles/NL000E_20210520_202414_904810/flat.bmp
2021/05/21 02:43:57-INFO-Reprocess-line:401 - Generating a CAMS FTPdetectinfo file...
Traceback (most recent call last):
File "RMS/StartCapture.py", line 947, in <module>
upload_manager=upload_manager, detect_end=cml_args.detectend, resume_capture=cml_args.resume)
File "RMS/StartCapture.py", line 448, in runCapture
detection_results=detection_results, nodetect=nodetect)
File "/home/pi/vRMS/lib/python3.7/site-packages/RMS-0.1-py3.7-linux-armv7l.egg/RMS/Reprocess.py", line 404, in processNight
cal_file_name = writeCAL(night_data_dir, config, platepar)
File "/home/pi/vRMS/lib/python3.7/site-packages/RMS-0.1-py3.7-linux-armv7l.egg/RMS/Formats/CAL.py", line 58, in writeCAL
platepar.y_poly_fwd[11], platepar.y_poly_fwd[10] = platepar.y_poly_fwd[10], platepar.y_poly_fwd[11]
IndexError: index 10 is out of bounds for axis 0 with size 7
This also aborts any uploads.
"..., and it's necessary if you want to run an IP camera"
^ quote from README. Is there more details, Debian or upstream gstreamer bug report to track?
Line 612 in b52f218
Add a check so that if it is time to start capturing auto_reprocess completes any directory which is in process, but does not start a new one.
Line 794 in f93dba6
Commit e0f2b02 made target of RunExternalScript an external process.
I think this means that the 4 hour timer starts running from the end of the observation, rather than the end of RunExternalScript.
On (only) one occasion the external script took a very long time, about 6 hours. This happened on at least two separate systems, both with good internet connections. I believe that the iStraStream server was not accepting connections, and the 6 hours was the accumulated timeout of each stage of the iStraStream script.
Can you make the timer longer, so that a failed external script does not block the reboot. My fear is that if iStraStream was down for an extended period of time, it would prevent any automatic updates of the code until operator intervention.
An ideal length for the timer would be so that it timed out a defined number of minutes before observation start, killed the external script, and then behave as though the external script had run to completion.
Hello,
I'm trying to get this up and running on Ubuntu 20.04.2 LTS and get the following error:
gcc-5 -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -O3 -Wall -fPIC -INative/Hough/ -I/home/linuxbrew/.linuxbrew/include -I/home/linuxbrew/.linuxbrew/opt/[email protected]/include -I/home/linuxbrew/.linuxbrew/opt/sqlite/include -I/home/linuxbrew/.linuxbrew/Cellar/[email protected]/3.9.2_5/include/python3.9 -c Native/Hough/buffer_2d.cpp -o build/temp.linux-x86_64-3.9/Native/Hough/buffer_2d.o -O3 -Wall
error: command 'gcc-5' failed: No such file or directory
Any ideas? Here is the full output from the install script:
archon@HP-Elite:~/Development/RMS$ python3 setup.py install
Compiling RMS/Astrometry/CyFunctions.pyx because it changed.
Compiling RMS/Routines/BinImageCy.pyx because it changed.
Compiling RMS/Routines/DynamicFTPCompressionCy.pyx because it changed.
Compiling RMS/Routines/Grouping3Dcy.pyx because it changed.
Compiling RMS/Routines/MorphCy.pyx because it changed.
Compiling RMS/CompressionCy.pyx because it changed.
Compiling Utils/SaturationTools.pyx because it changed.
[1/7] Cythonizing RMS/Astrometry/CyFunctions.pyx
[2/7] Cythonizing RMS/CompressionCy.pyx
/home/linuxbrew/.linuxbrew/Cellar/[email protected]/3.9.2_5/lib/python3.9/site-packages/Cython/Compiler/Main.py:369: FutureWarning: Cython directive 'language_level' not set, using 2 for now (Py2). This will change in a later release! File: /home/archon/Development/RMS/RMS/CompressionCy.pyx
tree = Parsing.p_module(s, pxd, full_module_name)
[3/7] Cythonizing RMS/Routines/BinImageCy.pyx
/home/linuxbrew/.linuxbrew/Cellar/[email protected]/3.9.2_5/lib/python3.9/site-packages/Cython/Compiler/Main.py:369: FutureWarning: Cython directive 'language_level' not set, using 2 for now (Py2). This will change in a later release! File: /home/archon/Development/RMS/RMS/Routines/BinImageCy.pyx
tree = Parsing.p_module(s, pxd, full_module_name)
[4/7] Cythonizing RMS/Routines/DynamicFTPCompressionCy.pyx
/home/linuxbrew/.linuxbrew/Cellar/[email protected]/3.9.2_5/lib/python3.9/site-packages/Cython/Compiler/Main.py:369: FutureWarning: Cython directive 'language_level' not set, using 2 for now (Py2). This will change in a later release! File: /home/archon/Development/RMS/RMS/Routines/DynamicFTPCompressionCy.pyx
tree = Parsing.p_module(s, pxd, full_module_name)
[5/7] Cythonizing RMS/Routines/Grouping3Dcy.pyx
/home/linuxbrew/.linuxbrew/Cellar/[email protected]/3.9.2_5/lib/python3.9/site-packages/Cython/Compiler/Main.py:369: FutureWarning: Cython directive 'language_level' not set, using 2 for now (Py2). This will change in a later release! File: /home/archon/Development/RMS/RMS/Routines/Grouping3Dcy.pyx
tree = Parsing.p_module(s, pxd, full_module_name)
[6/7] Cythonizing RMS/Routines/MorphCy.pyx
/home/linuxbrew/.linuxbrew/Cellar/[email protected]/3.9.2_5/lib/python3.9/site-packages/Cython/Compiler/Main.py:369: FutureWarning: Cython directive 'language_level' not set, using 2 for now (Py2). This will change in a later release! File: /home/archon/Development/RMS/RMS/Routines/MorphCy.pyx
tree = Parsing.p_module(s, pxd, full_module_name)
[7/7] Cythonizing Utils/SaturationTools.pyx
/home/linuxbrew/.linuxbrew/Cellar/[email protected]/3.9.2_5/lib/python3.9/site-packages/Cython/Compiler/Main.py:369: FutureWarning: Cython directive 'language_level' not set, using 2 for now (Py2). This will change in a later release! File: /home/archon/Development/RMS/Utils/SaturationTools.pyx
tree = Parsing.p_module(s, pxd, full_module_name)
running install
running bdist_egg
running egg_info
creating RMS.egg-info
writing RMS.egg-info/PKG-INFO
writing dependency_links to RMS.egg-info/dependency_links.txt
writing requirements to RMS.egg-info/requires.txt
writing top-level names to RMS.egg-info/top_level.txt
writing manifest file 'RMS.egg-info/SOURCES.txt'
reading manifest file 'RMS.egg-info/SOURCES.txt'
writing manifest file 'RMS.egg-info/SOURCES.txt'
installing library code to build/bdist.linux-x86_64/egg
running install_lib
running build_py
creating build
creating build/lib.linux-x86_64-3.9
creating build/lib.linux-x86_64-3.9/RMS
copying RMS/Math.py -> build/lib.linux-x86_64-3.9/RMS
copying RMS/UploadManager.py -> build/lib.linux-x86_64-3.9/RMS
copying RMS/StartCapture.py -> build/lib.linux-x86_64-3.9/RMS
copying RMS/Misc.py -> build/lib.linux-x86_64-3.9/RMS
copying RMS/VideoExtraction.py -> build/lib.linux-x86_64-3.9/RMS
copying RMS/DownloadPlatepar.py -> build/lib.linux-x86_64-3.9/RMS
copying RMS/ArchiveDetections.py -> build/lib.linux-x86_64-3.9/RMS
copying RMS/Compression.py -> build/lib.linux-x86_64-3.9/RMS
copying RMS/Pickling.py -> build/lib.linux-x86_64-3.9/RMS
copying RMS/DeleteOldObservations.py -> build/lib.linux-x86_64-3.9/RMS
copying RMS/Reprocess.py -> build/lib.linux-x86_64-3.9/RMS
copying RMS/ExtractStars.py -> build/lib.linux-x86_64-3.9/RMS
copying RMS/ImgurUpload.py -> build/lib.linux-x86_64-3.9/RMS
copying RMS/Decorators.py -> build/lib.linux-x86_64-3.9/RMS
copying RMS/GeoidHeightEGM96.py -> build/lib.linux-x86_64-3.9/RMS
copying RMS/BufferedCapture.py -> build/lib.linux-x86_64-3.9/RMS
copying RMS/Detection.py -> build/lib.linux-x86_64-3.9/RMS
copying RMS/__init__.py -> build/lib.linux-x86_64-3.9/RMS
copying RMS/CaptureDuration.py -> build/lib.linux-x86_64-3.9/RMS
copying RMS/Logger.py -> build/lib.linux-x86_64-3.9/RMS
copying RMS/DetectionTools.py -> build/lib.linux-x86_64-3.9/RMS
copying RMS/RunExternalScript.py -> build/lib.linux-x86_64-3.9/RMS
copying RMS/ConfigReader.py -> build/lib.linux-x86_64-3.9/RMS
copying RMS/QueuedPool.py -> build/lib.linux-x86_64-3.9/RMS
copying RMS/DetectStarsAndMeteors.py -> build/lib.linux-x86_64-3.9/RMS
creating build/lib.linux-x86_64-3.9/Utils
copying Utils/PlotFieldsums.py -> build/lib.linux-x86_64-3.9/Utils
copying Utils/FOVKML.py -> build/lib.linux-x86_64-3.9/Utils
copying Utils/ShowerAssociation.py -> build/lib.linux-x86_64-3.9/Utils
copying Utils/Flux.py -> build/lib.linux-x86_64-3.9/Utils
copying Utils/SaturationCorrection.py -> build/lib.linux-x86_64-3.9/Utils
copying Utils/SetCameraAddress.py -> build/lib.linux-x86_64-3.9/Utils
copying Utils/Vidchop.py -> build/lib.linux-x86_64-3.9/Utils
copying Utils/ShowThresholdLevels.py -> build/lib.linux-x86_64-3.9/Utils
copying Utils/GenerateTimelapse.py -> build/lib.linux-x86_64-3.9/Utils
copying Utils/StackFFs.py -> build/lib.linux-x86_64-3.9/Utils
copying Utils/PlotMeteorPSFProfile.py -> build/lib.linux-x86_64-3.9/Utils
copying Utils/FRbinViewer.py -> build/lib.linux-x86_64-3.9/Utils
copying Utils/BatchFFtoImage.py -> build/lib.linux-x86_64-3.9/Utils
copying Utils/RetroactiveFixup.py -> build/lib.linux-x86_64-3.9/Utils
copying Utils/Grouping3DRunner.py -> build/lib.linux-x86_64-3.9/Utils
copying Utils/RMS2UFO.py -> build/lib.linux-x86_64-3.9/Utils
copying Utils/ShowLiveStream.py -> build/lib.linux-x86_64-3.9/Utils
copying Utils/ManualReduction.py -> build/lib.linux-x86_64-3.9/Utils
copying Utils/GenerateMP4s.py -> build/lib.linux-x86_64-3.9/Utils
copying Utils/FieldSumToTxt.py -> build/lib.linux-x86_64-3.9/Utils
copying Utils/MakeFlat.py -> build/lib.linux-x86_64-3.9/Utils
copying Utils/SkyFit2.py -> build/lib.linux-x86_64-3.9/Utils
copying Utils/CameraControl.py -> build/lib.linux-x86_64-3.9/Utils
copying Utils/CheckNight.py -> build/lib.linux-x86_64-3.9/Utils
copying Utils/PointsViewer.py -> build/lib.linux-x86_64-3.9/Utils
copying Utils/SaturationSimulation.py -> build/lib.linux-x86_64-3.9/Utils
copying Utils/TrackStack.py -> build/lib.linux-x86_64-3.9/Utils
copying Utils/LiveViewer.py -> build/lib.linux-x86_64-3.9/Utils
copying Utils/StackImgs.py -> build/lib.linux-x86_64-3.9/Utils
copying Utils/__init__.py -> build/lib.linux-x86_64-3.9/Utils
copying Utils/CalibrationReport.py -> build/lib.linux-x86_64-3.9/Utils
copying Utils/FRbinMosaic.py -> build/lib.linux-x86_64-3.9/Utils
copying Utils/CameraControl27.py -> build/lib.linux-x86_64-3.9/Utils
copying Utils/FFtoFrames.py -> build/lib.linux-x86_64-3.9/Utils
copying Utils/GenerateThumbnails.py -> build/lib.linux-x86_64-3.9/Utils
creating build/lib.linux-x86_64-3.9/Tests
copying Tests/CompressSimulatedMeteor.py -> build/lib.linux-x86_64-3.9/Tests
copying Tests/CompressionTimings.py -> build/lib.linux-x86_64-3.9/Tests
copying Tests/MorphCyTest.py -> build/lib.linux-x86_64-3.9/Tests
copying Tests/__init__.py -> build/lib.linux-x86_64-3.9/Tests
copying Tests/CompressionGaussTest.py -> build/lib.linux-x86_64-3.9/Tests
creating build/lib.linux-x86_64-3.9/RMS/Astrometry
copying RMS/Astrometry/FFTalign.py -> build/lib.linux-x86_64-3.9/RMS/Astrometry
copying RMS/Astrometry/SkyFit.py -> build/lib.linux-x86_64-3.9/RMS/Astrometry
copying RMS/Astrometry/ApplyRecalibrate.py -> build/lib.linux-x86_64-3.9/RMS/Astrometry
copying RMS/Astrometry/AstrometryNetNova.py -> build/lib.linux-x86_64-3.9/RMS/Astrometry
copying RMS/Astrometry/__init__.py -> build/lib.linux-x86_64-3.9/RMS/Astrometry
copying RMS/Astrometry/ApplyAstrometry.py -> build/lib.linux-x86_64-3.9/RMS/Astrometry
copying RMS/Astrometry/CheckFit.py -> build/lib.linux-x86_64-3.9/RMS/Astrometry
copying RMS/Astrometry/Conversions.py -> build/lib.linux-x86_64-3.9/RMS/Astrometry
copying RMS/Astrometry/AtmosphericExtinction.py -> build/lib.linux-x86_64-3.9/RMS/Astrometry
creating build/lib.linux-x86_64-3.9/RMS/Formats
copying RMS/Formats/AllskyPlate.py -> build/lib.linux-x86_64-3.9/RMS/Formats
copying RMS/Formats/FrameInterface.py -> build/lib.linux-x86_64-3.9/RMS/Formats
copying RMS/Formats/FRbin.py -> build/lib.linux-x86_64-3.9/RMS/Formats
copying RMS/Formats/FieldIntensities.py -> build/lib.linux-x86_64-3.9/RMS/Formats
copying RMS/Formats/CALSTARS.py -> build/lib.linux-x86_64-3.9/RMS/Formats
copying RMS/Formats/AST.py -> build/lib.linux-x86_64-3.9/RMS/Formats
copying RMS/Formats/FFStruct.py -> build/lib.linux-x86_64-3.9/RMS/Formats
copying RMS/Formats/FFfits.py -> build/lib.linux-x86_64-3.9/RMS/Formats
copying RMS/Formats/StarCatalog.py -> build/lib.linux-x86_64-3.9/RMS/Formats
copying RMS/Formats/FFbin.py -> build/lib.linux-x86_64-3.9/RMS/Formats
copying RMS/Formats/FTPdetectinfo.py -> build/lib.linux-x86_64-3.9/RMS/Formats
copying RMS/Formats/AsgardEv.py -> build/lib.linux-x86_64-3.9/RMS/Formats
copying RMS/Formats/Showers.py -> build/lib.linux-x86_64-3.9/RMS/Formats
copying RMS/Formats/__init__.py -> build/lib.linux-x86_64-3.9/RMS/Formats
copying RMS/Formats/FFfile.py -> build/lib.linux-x86_64-3.9/RMS/Formats
copying RMS/Formats/Vid.py -> build/lib.linux-x86_64-3.9/RMS/Formats
copying RMS/Formats/CAL.py -> build/lib.linux-x86_64-3.9/RMS/Formats
copying RMS/Formats/Platepar.py -> build/lib.linux-x86_64-3.9/RMS/Formats
copying RMS/Formats/UFOOrbit.py -> build/lib.linux-x86_64-3.9/RMS/Formats
creating build/lib.linux-x86_64-3.9/RMS/Routines
copying RMS/Routines/DebruijnSequence.py -> build/lib.linux-x86_64-3.9/RMS/Routines
copying RMS/Routines/FOVArea.py -> build/lib.linux-x86_64-3.9/RMS/Routines
copying RMS/Routines/AllskyPlot.py -> build/lib.linux-x86_64-3.9/RMS/Routines
copying RMS/Routines/Grouping3D.py -> build/lib.linux-x86_64-3.9/RMS/Routines
copying RMS/Routines/Image.py -> build/lib.linux-x86_64-3.9/RMS/Routines
copying RMS/Routines/RollingShutterCorrection.py -> build/lib.linux-x86_64-3.9/RMS/Routines
copying RMS/Routines/CompareLines.py -> build/lib.linux-x86_64-3.9/RMS/Routines
copying RMS/Routines/GreatCircle.py -> build/lib.linux-x86_64-3.9/RMS/Routines
copying RMS/Routines/AddCelestialGrid.py -> build/lib.linux-x86_64-3.9/RMS/Routines
copying RMS/Routines/CustomPyqtgraphClasses.py -> build/lib.linux-x86_64-3.9/RMS/Routines
copying RMS/Routines/__init__.py -> build/lib.linux-x86_64-3.9/RMS/Routines
copying RMS/Routines/MaskImage.py -> build/lib.linux-x86_64-3.9/RMS/Routines
copying RMS/Routines/SolarLongitude.py -> build/lib.linux-x86_64-3.9/RMS/Routines
copying RMS/CompressionCy.c -> build/lib.linux-x86_64-3.9/RMS
copying Utils/SaturationTools.c -> build/lib.linux-x86_64-3.9/Utils
copying RMS/Astrometry/CyFunctions.c -> build/lib.linux-x86_64-3.9/RMS/Astrometry
copying RMS/Routines/BinImageCy.c -> build/lib.linux-x86_64-3.9/RMS/Routines
copying RMS/Routines/DynamicFTPCompressionCy.c -> build/lib.linux-x86_64-3.9/RMS/Routines
copying RMS/Routines/Grouping3Dcy.c -> build/lib.linux-x86_64-3.9/RMS/Routines
copying RMS/Routines/MorphCy.c -> build/lib.linux-x86_64-3.9/RMS/Routines
running build_ext
building 'kht_module' extension
creating build/temp.linux-x86_64-3.9
creating build/temp.linux-x86_64-3.9/Native
creating build/temp.linux-x86_64-3.9/Native/Hough
gcc-5 -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -O3 -Wall -fPIC -INative/Hough/ -I/home/linuxbrew/.linuxbrew/include -I/home/linuxbrew/.linuxbrew/opt/[email protected]/include -I/home/linuxbrew/.linuxbrew/opt/sqlite/include -I/home/linuxbrew/.linuxbrew/Cellar/[email protected]/3.9.2_5/include/python3.9 -c Native/Hough/buffer_2d.cpp -o build/temp.linux-x86_64-3.9/Native/Hough/buffer_2d.o -O3 -Wall
error: command 'gcc-5' failed: No such file or directory
What is the minimum FPS that the software will still work at detecting meteors? Is it required to have multiple images with the same meteor in it or can it detect a meteor in a single long exposure?
A recent update has introduced a bug in DownloadPlatepar.py.
File "/home/pi/source/RMS/RMS/DownloadPlatepar.py", line 75, in downloadNewPlatepar
sftp.get(remote_platepar, os.path.join(config.config_file_path, config.platepar_name))
NameError: name 'os' is not defined
Currently some of the initial camera configuration procedure is described in a YouTube video https://youtu.be/N2sq1hBwcAA
transfer essential details into Wiki page for camera assembly and setup
Note that changes are afoot to remove dependence on CMS software by using configuration scripts - document the current best practise
Using Camera params commands to change gain to assist in focus and pointing setup
I think this may be a bug. I used submit to astrometry.net in skyfit2, and it found a solution. However it was 90 degrees rotated.
The FF used is attached, the coordinates used are those of station NL000D.
FF_NL000F_20210227_201555_422_0228096.fits.gz
This happens because the end of the file is reached, which is interpreted as a device disconnection.
https://github.com/CroatianMeteorNetwork/RMS/blob/master/RMS/BufferedCapture.py#L291
I've solved it by only trying to reconnect if video_file
is not set:
# If the video device was disconnected, wait for reconnection
if (not ret) and (self.video_file is None):
(However a better fix might be to move this if
block just below the one that's currently after it, which checks for the end of the video file)
Hi
Can we do more analyze on the meteor after detected ? Just like UFOAnalyzer
do. For example, which group is the meteor from , multi site data analyze for orbit of the meteor.
Or, just generate the files which UFOAnalyzer need and analyze them in UFOAnalyzer.
It would be useful to have the .config file used for the observing session saved in the CapturedFiles observation directory.
Reported by Maciej in https://groups.io/g/globalmeteornetwork/message/468
Processing dependencies for RMS==0.1
Searching for astropy>=2.0.3
Reading https://pypi.org/simple/astropy/
Downloading https://files.pythonhosted.org/packages/ea/63/02ada19599c7ad34b4984e797c555cacf2c358d48824ffe331e029574a2c/astropy-3.2.2.tar.gz#sha256=8553f4a95e9938a0c7ae520633f7172356824b8eb324dd967fca6baf00ac19bf
Best match: astropy 3.2.2
Processing astropy-3.2.2.tar.gz
Writing /tmp/easy_install-khgwDY/astropy-3.2.2/setup.cfg
Running astropy-3.2.2/setup.py -q bdist_egg --dist-dir /tmp/easy_install-khgwDY/astropy-3.2.2/egg-dist-tmp-YUOEAh
ERROR: Python >=3.5 is required by astropy
To achieve a single point of truth, move details that are found only in the Assembly Google Doc https://docs.google.com/document/d/18TT-Jm7z9kYskl5ua07jQWD91OiyBemBnOosiNdW6nY/edit over into the Wiki
"... The issue was apparently solved in Python 3.7, but we have not yet extensively tested it. You will need to run Raspbian Stretch to get Python 3.7 running."
^ quote from README. Is there upstream Python bug report to track?
Upgrade to Raspbian Strech is blocked by issue #16
The current official parts list is in a google doc https://docs.google.com/document/d/1XBSdrkwrOGPONIn5PBJ7YzH2vr7pUIxW3l8S62BQXEQ/edit - make this part of the wiki and retire the separate list
README file mencionate a SD Image, but it's haven't a link.
Apparently there is a longitude-wrapping problem in New Zealand. This shows up in the following KML file: https://globalmeteornetwork.org/data/kml_fov/NZ0004-100km.kml . An extract of the coordinates:
178.805081,-35.549552,100129
178.890471,-35.580602,100128
179.849450,-35.997326,100109
-179.750951,-36.982378,100071
-179.180944,-37.674392,100049
-178.458167,-38.279164,100034
-177.437295,-38.874397,100021
-176.775249,-39.804837,100008
-177.956414,-40.069974,100005
179.393763,-40.643710,100001
178.194782,-40.913399,100000
I haven't looked into the code yet, opening an issue to do so later.
Web services that provide a view of the gmn data have to maintain a mapping of station idents to place names.
Adding an extra field into the .config file with a place name (i.e. Baldivis, Western Australia) would reduce the admin burden on the web service.
The IMX291 cameras have a timing offset of about 2.2 seconds from real-time, and this is taken into account during the trajectory computation procedure. But if other types of cameras are used, e.g. MIPI cams, there is virtually no delay.
It would be handy to have sample config files for the supported lenses added to the standard distributions. The 4mm lens seems the most popular, so leave that as the default. But also add an 8mm.config and a 16mm.config.
Could documentation somewhere explain how the software is connecting to a camera and what someone needs to watch for when buying a camera to make sure it is compatible with the software? I only noticed the ReadMe mention recommended sony sensors to use but it was not clear what "driver" is being used to talk to the camera. I assume it is something to do with the OpenCV gstreamer but further details explaining how this works would be helpful.
SkyFit2 is not correctly filling the image_file attribute in the ECSV fle (its blank). This is causing an inconsistency downstream when processing in WMPL since trajectories calculated from FTPdetect files contain the image name in the comment field, whereas orbits calculated from ECSV files do not.
Its a simple fix: add the below at line 5262, and then change meta_dict to use ff_name for the image_file attribute. I've tested this for multiple fireballs during December, all looks good.
if self.img_handle.input_type == 'ff':
ff_name = self.img_handle.current_ff_file
else:
ff_name = "FF_{:s}_".format(self.platepar.station_code) \
+ self.img_handle.beginning_datetime.strftime("%Y%m%d_%H%M%S_") \
+ "{:03d}".format(int(self.img_handle.beginning_datetime.microsecond//1000)) \
+ "_0000000.fits"
The heater is considered non-essential except in the foulest of conditions, but still needs to be documented with an explanation of when it is required and how to add it to the assembly
On the lasts updates, the quality of preview image is very bad in my two stations.
My actual scenario is:
Here is the link with the images captured.
Update
Opening FITS file with PixInsight, I see the same image in four formats:
This same cameras and USB capture devices was tested with UFOCapture2 on other machine and works fine. Any idea?
ELVES — ELVES (Emission of Light and Very Low Frequency perturbations due to Electromagnetic Pulse Sources) often appear as a dim, flattened, expanding glow.
The software UFOCaptureHD2 can capture this event. So will you Develep this new feature?
Ed Harmon volunteered:
https://groups.io/g/globalmeteornetwork/message/3768
see also
https://groups.io/g/globalmeteornetwork/message/3769
The current iStream.sh script does not produce a report_astrometry.jpg file:
function upload_report_astrometry {
REPORT_ASTROMETRY_FILE="$(ls $CAPTURED_DIR_NAME/*.jpg | grep 'report_astrometry.jpg')"
if [ -f "$REPORT_ASTROMETRY_FILE" ]; then
curl --user-agent $AGENT -F"operation=upload" -F"file=@$REPORT_ASTROMETRY_FILE" "$SERVER/$SYSTEM/?station_id=$STATION_ID&type=report_astrometry&action=upload&level=$ACTIVE_LEVEL"
else
curl --user-agent $AGENT "$SERVER/$SYSTEM/?station_id=$STATION_ID&type=no_report_astrometry&action=upload&level=$ACTIVE_LEVEL"
fi
I would suggest to change it to:
function upload_report_astrometry {
REPORT_ASTROMETRY_FILE="$(ls $CAPTURED_DIR_NAME/*.jpg | grep 'report_astrometry.jpg')"
TMP_REPORT_ASTROMETRY_FILE="$CAPTURED_DIR_NAME/report_astrometry.jpg"
if [ -f "$REPORT_ASTROMETRY_FILE" ]; then
convert $REPORT_ASTROMETRY_FILE $TMP_REPORT_ASTROMETRY_FILE
curl --user-agent $AGENT -F"operation=upload" -F"file=@$REPORT_ASTROMETRY_FILE" "$SERVER/$SYSTEM/?station_id=$STATION_ID&type=report_astrometry&action=upload&level=$ACTIVE_LEVEL"
else
curl --user-agent $AGENT "$SERVER/$SYSTEM/?station_id=$STATION_ID&type=no_report_astrometry&action=upload&level=$ACTIVE_LEVEL"
fi
./Scripts/RMS_SetCameraParams.sh: line 99: syntax error: unexpected end of file
Move Google Doc content into Wiki for single point of truth
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.