{"id":"a649c65f-b309-4f8c-99cb-5ee68d35f01a","arxiv_id":"2412.08230","paper_version":1,"verdict":"CONDITIONAL","confidence":"MODERATE","novelty_score":4.0,"correctness_risk":"medium","formal_verification":"none","parameter_count":0,"one_line_summary":"RatanSunPy is an open-source Python package that calibrates, cleans, and analyzes RATAN-600 solar radio scans, detecting active regions and matching them to NOAA records.","lead":"The paper presents RatanSunPy, an open-source Python library that downloads, calibrates, and analyzes decades of RATAN-600 solar radio scans, including automatic detection of active regions and matching with NOAA records. It matters because it lowers the technical barrier to a large historical microwave dataset useful for solar physics and space weather studies.","discovery_kind":"extension","skeptic_critique":{"model":"deepseek-v4-flash","headline":"Equation (2) in §4.1 inverts the Rayleigh–Jeans conversion (c²/ν² instead of ν²/c²), which, if implemented, would corrupt the quiet-Sun template normalization and all absolute flux calibration. This must be fixed or shown to be a transcription typo.","rationale":"The reader's weakest assumption correctly identifies the quiet-Sun template as a calibration risk, but the more concrete and immediately checkable defect is the dimensionally inconsistent unit conversion in Eq. (2). This is not a matter of external physical assumptions; it is an algebraic error in the printed methodology. If the code follows the equation, the pipeline cannot produce correct absolute fluxes; if the code does not, the manuscript misdescribes its own core calibration step. Either way, the paper as written fails to support the 'robust' claim until Eq. (2) is corrected or verified. The paper's own §6 describes only unit tests and doctests, which validate code behavior, not calibration accuracy; no comparison with existing tools (Workscan, DataAnalyzer) or absolute flux references is provided. I also note an internal inconsistency in the observation count (50000 in the introduction, 30000 later), which, while not central, further supports the need for careful revision. The reader's CONDITIONAL verdict remains appropriate, but the condition should be expanded to include correcting or justifying Eq. (2), not just the quiet-Sun background assumption. I did not execute the code, so I cannot determine whether the code contains the same error, but the manuscript itself needs a fix.","tokens_in":11633,"tokens_out":7158,"duration_ms":72537,"concrete_test":"Inspect the RATANSunPy source (github.com/SpbfSAO/RATANSunPy) to find the function that converts the brightness-temperature model to s.f.u. and compare it with Eq. (2). Then run the calibration on one observation at ~10 GHz and compare the derived quiet-Sun total flux with RSTN or Nobeyama observations for the same day. If the printed c²/ν² form is used, the fluxes will be off by orders of magnitude; if the code uses ν²/c², Eq. (2) should be corrected as a typographic error.","verdict_should_be":"CONDITIONAL","load_bearing_attack":"Section 4.1 introduces the conversion from the quiet-Sun brightness-temperature model to total flux density, Eq. (2): Fs = 2·10²²·kB·Tb·Ωs·c²/ν². This is dimensionally inconsistent: the right-hand side has units of kg·m⁴·s⁻² (treating solid angle as dimensionless), whereas a spectral flux density in s.f.u. has units of kg·s⁻². The Rayleigh–Jeans law gives Bν = 2kB Tb ν²/c², so the factor should be ν²/c², not c²/ν². If the code implements Eq. (2) as printed, the template normalization is wrong by a factor (c²/ν²)/(ν²/c²) = (c/ν)⁴ ≈ 8×10⁻⁷ at 10 GHz, so the calibrated absolute flux scale would be off by roughly six orders of magnitude. The paper provides no independent calibration check (e.g., comparison with Nobeyama/RSTN total flux) that would catch such a normalization error. Since the central claim of the paper is a 'robust preprocessing pipeline' whose output includes calibrated scans and source fluxes, this unverified and apparently incorrect conversion is the most load-bearing weakness. The quiet-Sun template assumption noted by the reader is also relevant, but the formula error is more immediate and checkable: even if the template were physically correct, the unit conversion printed here would compromise the calibration.","agreement_with_reader":"partial"},"referee_report":{"model":"deepseek-v4-flash","summary":"The paper presents RatanSunPy, an open-source Python package for accessing, calibrating, and analyzing one-dimensional multi-frequency solar observations from the RATAN-600 radio telescope. The package provides two data clients (RATANClient and SRSClient), a pipeline that calibrates raw scans using quiet-Sun templates, automatic detection of local sources from the averaged circular-polarization signal, matching of detected sources to NOAA active regions, and Gaussian fitting to estimate source parameters. The manuscript describes the package architecture, shows a usage example, and reports that the code is tested with pytest and doctest.","tokens_in":11908,"tokens_out":3723,"duration_ms":40476,"significance":"If the calibration and source-analysis steps are quantitatively validated, RatanSunPy would be a valuable community resource: it lowers the barrier to working with a multi-decade archive of microwave solar observations, is open source, integrates with the wider Python and SunPy ecosystem, and provides automated table outputs that could support active-region tracking and space-weather studies. The paper also deserves credit for shipping tests, documentation, and usage examples. However, the central claim of a 'robust preprocessing pipeline' is not yet supported by the evidence presented: there is no quantitative validation of the calibrated absolute flux scale, of source-detection completeness or false-positive rates, or of the active-region matching accuracy, and Section 8 explicitly acknowledges instability in source localization and Gaussian analysis.","major_comments":[{"comment":"Equation (2) is dimensionally incorrect. The Rayleigh-Jeans law gives B_nu = 2 k_B T_b nu^2 / c^2, so the spectral flux density is proportional to nu^2/c^2. Equation (2) instead prints c^2/nu^2, which inverts the factor and would change the result by (c/nu)^4, roughly 8e-7 at 10 GHz. Because this conversion normalizes the quiet-Sun template and therefore sets the absolute flux scale for all calibrated scans and source parameters, this is a load-bearing step. Please correct the formula and, more importantly, verify the implemented code with a unit test and an independent calibration check such as comparison with Nobeyama or RSTN total-flux measurements.","section":"4.1, Eq. (2)"},{"comment":"The paper does not provide quantitative validation of the claimed robust preprocessing. Section 6 reports only that tests exist (pytest and doctest), which checks for coding bugs but not scientific accuracy. Section 8 admits that source localization and Gaussian analysis produce unstable results in certain cases. To support the central claim, please add quantitative metrics: calibrated flux densities compared with independent instruments, detection recall and precision against a labeled sample of active regions, and a characterization of when Gaussian analysis fails and by how much.","section":"6 and 8"},{"comment":"The calibration method assumes that the quiet-Sun template, based on solar-minimum observations and historical brightness temperatures from Shendrik et al. (2020) and Borovik (1997), provides the correct background level for every observation. Since the calibration procedure scales the observed background to match this template, any inaccuracy of the template at a given frequency, epoch, or solar-cycle phase would propagate directly into all source amplitudes and brightness temperatures. The manuscript gives no sensitivity analysis or independent benchmark for this assumption; please either validate the template against independent absolute calibration or quantify the resulting systematic uncertainty.","section":"4.1"}],"minor_comments":[{"comment":"The sentence 'These levels remain some difficult to detect in the ultraviolet and X-ray ranges' is ungrammatical and should be rewritten.","section":"Abstract"},{"comment":"The URL in the first paragraph contains a stray closing bracket: 'http://www.spbf.sao.ru/prognoz/]' should be 'http://www.spbf.sao.ru/prognoz/'.","section":"3"},{"comment":"The automatic peak detection relies on a discrete wavelet transform and the find_peaks function, but the wavelet parameters and detection threshold are not specified; please state them or refer to the source code with a versioned release.","section":"4.2"},{"comment":"Equation (4) uses c for the Gaussian width, which conflicts with c used for the speed of light in Eq. (2); consider renaming the width parameter to sigma.","section":"4.4, Eq. (4)"},{"comment":"The caption of Figure 2 (and the text referencing it) says '2024/31/07', which should be '2024/07/31' for consistency with Figure 1.","section":"2.2"},{"comment":"The package name is spelled inconsistently: 'RatanSunPy' in the text versus 'RATANSunPy' in the repository URL and documentation links; please standardize the spelling.","section":"Throughout"},{"comment":"The quality-assurance section would be stronger with a test-coverage metric and a statement that the tests include a regression test for the calibration formula, since that is the most safety-critical part of the pipeline.","section":"6"}],"recommendation":"major_revision","confidential_remarks":"This is a software paper, so the deciding point is whether Eq. (2) reflects the actual implementation. I recommend asking the authors to cite the exact code line and to add a regression test that would catch the inversion. The editor may also wish to confirm that the repository is publicly accessible and that the documentation examples run with the released version."},"author_rebuttal":null,"desk_editor":{"model":"deepseek-v4-flash","letter":"Short version: this is a genuinely useful software-paper submission, but the calibration formula as printed is backwards, and the paper does not validate the pipeline against anything. That combination is what you should remember.\n\nWhat is new: RatanSunPy is the first open-source Python package that wraps the RATAN-600 30-50k scan archive, gives you a client for NOAA SRS, does calibration, quiet-Sun normalization, local-source detection, Gaussian fitting, and NOAA AR matching, and ships example notebooks and pytest tests. Reimplementing Workscan/DataAnalyzer functionality in a modern Python stack is real work, and the project is clearly organized. That part deserves credit.\n\nWhere it is soft: Eq. (2) in §4.1 gives Fs = 2·10^22 kB Tb Ωs c²/ν². The Rayleigh-Jeans law has ν²/c², not c²/ν². As printed the units do not work out; the factor (c/ν)^4 at 10 GHz is ~10^-7, so if the code implements this, every calibrated flux is off by orders of magnitude. It may be just a transcription typo, but there is no commit hash, no executed code, no calibration benchmark, so we cannot tell. That is the load-bearing weakness, more immediate than the quiet-Sun template assumption. The paper also concedes in §8 that source localization and Gaussian analysis are unstable in some cases, which undercuts the word 'robust' in the title. There is no quantitative comparison with Workscan/DataAnalyzer or against Nobeyama/RSTN total flux.\n\nThe quiet-Sun calibration is inherited from Shendrik et al. 2020, so the self-citation is fair; the package is not claiming new physics, just access. Circularity is minor.\n\nWho it is for: solar radio astronomers and space-weather people who want to work with RATAN-600 data without writing their own parser. A serious referee can get value from this, but the paper needs a fix of Eq. (2), a reproducibility pin (commit hash, dependencies), and at least one accuracy comparison. I would engage with it, but only after those are addressed.","headline":"Useful Python pipeline for RATAN-600 data, but the printed calibration formula is inverted and the paper needs a benchmark before I'd call it robust.","tokens_in":12478,"tokens_out":2417,"would_cite":true,"duration_ms":23933,"reading_group":"maybe","serious_thinker":"yes","would_accept_peer_review":true},"rs_alignment":null,"lean_confirmation":null,"pith_extraction":{"msc":[],"pacs":[],"model":"deepseek-v4-flash","headline":"RatanSunPy is an open-source Python package that automates the full processing chain for RATAN-600 solar radio scans: quiet-Sun-template calibration, local microwave source detection, NOAA active-region association, and Gaussian…","keywords":["RATAN-600","solar radio astronomy","quiet Sun calibration","active regions","microwave spectroscopy","Python package","Gaussian analysis","solar cycle observations"],"falsifier":"Compare RatanSunPy-calibrated total solar fluxes, at several frequencies, with independent measurements from a small-antenna solar radio instrument such as the Nobeyama polarimeters across a range of activity levels. If the offsets between the two grow with solar activity or change with frequency in a way that tracks the difference between the template and the day's true quiet-Sun profile, the template-calibration assumption is falsified.","tokens_in":11428,"feed_emoji":"📡","tokens_out":6929,"duration_ms":65426,"temperature":0.7,"pith_summary":"RatanSunPy is a Python package that converts raw one-dimensional multi-frequency scans from the RATAN-600 radio telescope into calibrated solar spectra and structured tables of local sources and active regions. The authors are trying to establish that the decades-long RATAN-600 archive can be processed end-to-end without specialized standalone software: the package loads data, cleans it, calibrates it against a quiet-Sun template, detects local microwave sources from averaged circular polarization, and identifies them with NOAA active regions. If the package works as claimed, a 3-18 GHz record of the solar chromosphere and corona spanning more than two decades becomes usable by the broader solar-physics and machine-learning communities. The central bet is that a single quiet-Sun template built from minimum-activity observations can serve as the absolute calibration reference for every scan.","feed_headline":"One open-source pipeline calibrates decades of RATAN-600 solar scans","feed_subtitle":"Automatic calibration, source detection, and active-region matching make a 25-year solar radio archive accessible.","key_machinery":"The load-bearing mechanism is the quiet-Sun template calibration: a set of one-dimensional disk profiles at each frequency, built from minimum-activity observations, that is used to scale the background constant of every raw scan so that the observation matches a model quiet Sun. Supporting machinery includes the conversion of brightness temperatures to flux densities through the Rayleigh-Jeans law, symlet-wavelet denoising of the circular polarization signal for peak detection, a coordinate rotation that maps NOAA Solar Region Summary positions to the RATAN-600 scan geometry, and least-squares fitting of Gaussian components to active-region profiles to extract physical parameters.","core_discovery":"The paper presents RatanSunPy as a complete, reproducible preprocessing pipeline for RATAN-600 solar observations. Its calibration method fits each raw scan so that its constant background level matches a quiet-Sun template: semi-profiles of the solar disk at each frequency, constructed from observations during minimal solar activity and normalized so that the area under the profile equals the total solar flux predicted by a historical brightness-temperature model via the Rayleigh-Jeans law. After calibration, the package denoises the frequency-averaged circular polarization signal with symlet wavelets, finds peaks corresponding to local sources, transforms Solar Region Summary positions into heliocentric coordinates, and matches sources to active regions. For each matched active region, Gaussian analysis at every frequency yields amplitudes, widths, fluxes, and brightness temperatures. The claimed deliverable is therefore both calibrated scans and physical source catalogs, ready for comparison with other wavelengths and for time-series studies.","pith_inferences":["A testable consequence of the template-calibration design is that all absolute fluxes inherit the quiet-Sun model's assumptions; comparing RatanSunPy outputs against independent total-flux measurements (for example, Nobeyama polarimeters) would reveal any activity-dependent bias.","Because source detection runs on circular polarization, active regions whose microwave emission is purely thermal and unpolarized will be underrepresented in automatically produced catalogs; combining with intensity-based detection would change the recoverable population.","If the template is stable over solar cycles, the package enables a self-consistent homogenized microwave database of active-region brightness temperatures across cycles 23-25; if not, cycle comparisons will need per-cycle calibration templates.","The package's design suggests a natural extension: mapping the one-dimensional detected sources back onto full-disk magnetograms could produce automated, daily microwave-magnetogram association statistics, which the paper does not itself evaluate."],"forward_implications":["A researcher can go from a raw RATAN-600 FITS file to a calibrated full-disk spectrum in one Python environment, with no local directory setup or standalone GUI.","Local microwave sources, including gyroresonance sources visible in circular polarization, are detected automatically and matched to NOAA active regions for the same day.","For each active region, the package produces frequency-resolved amplitudes, widths, fluxes, and brightness temperatures, enabling multi-day spectral evolution studies.","Because the archive spans solar cycles 23, 24, and part of 25, the pipeline makes cycle-length comparisons of microwave active-region properties practical.","The Python interface allows direct integration with machine-learning libraries, which the authors argue can support automated flare-forecasting systems."],"supporting_citations":[{"why":"Supplies the original preprocessing methodology and the historical quiet-Sun brightness-temperature table on which the template calibration is built.","marker":"(Shendrik et al., 2020)"},{"why":"Describes the RATAN-600 solar observation archive and information system that the package's client accesses.","marker":"(Tokhchukova, 2011)"},{"why":"Provides the quiet-Sun level subtraction and quiet-Sun reference used in calibration.","marker":"(Borovik, 1997)"},{"why":"Defines the calibration-by-convolution approach and the active-region feature calculation the package reimplements.","marker":"(Opeikina et al., 2015)"},{"why":"Documents the traditional RATAN-600 calibration schemes (quiet-Sun antenna temperature and total-flux scaling) that the template method is designed to replace.","marker":"(Nindos et al., 1996)"},{"why":"Gives the RATAN-600 beam-pattern computation needed to convert fitted Gaussian sizes into physical source sizes.","marker":"(Tokhchukova et al., 2014)"}],"fun_headline_variants":["RatanSunPy: Automated calibration for RATAN-600 solar data","Open-source RatanSunPy simplifies solar radio analysis","RatanSunPy turns raw RATAN-600 scans into source catalogs","RatanSunPy matches solar radio sources to active regions"],"cache_read_input_tokens":3200,"weakest_assumption_plain":"Every observation is calibrated by scaling its constant background to a quiet-Sun template built from minimum-activity observations and a historical brightness-temperature model; if that template is wrong for a given frequency, epoch, or solar-cycle phase, all calibrated fluxes, amplitudes, and brightness temperatures inherit the bias.","fun_headline_variants_meta":{"raw":{"variants":["RatanSunPy: Automated calibration for RATAN-600 solar data","Open-source RatanSunPy simplifies solar radio analysis","RatanSunPy turns raw RATAN-600 scans into source catalogs","RatanSunPy matches solar radio sources to active regions"]},"model":"deepseek-v4-flash","effort":"low","cost_usd":0.000658,"raw_usage":{"total_tokens":3029,"prompt_tokens":982,"completion_tokens":2047,"prompt_tokens_details":{"cached_tokens":384},"prompt_cache_hit_tokens":384,"prompt_cache_miss_tokens":598,"completion_tokens_details":{"reasoning_tokens":1972}},"tokens_in":598,"tokens_out":2047,"duration_ms":17609,"temperature":1.0,"reasoning_tokens":1972,"cache_read_input_tokens":384,"cache_creation_input_tokens":0},"cache_creation_input_tokens":0},"created_at":"2026-08-11T18:02:58.477074+00:00","model_set":{"reader":"deepseek-v4-flash"},"falsifier":"Compare RatanSunPy-calibrated total solar fluxes, at several frequencies, with independent measurements from a small-antenna solar radio instrument such as the Nobeyama polarimeters across a range of activity levels. If the offsets between the two grow with solar activity or change with frequency in a way that tracks the difference between the template and the day's true quiet-Sun profile, the template-calibration assumption is falsified.","supporting_citations":[{"cited_title":"Spatial and temporal properties of the solar cycle from ratan-600 microwave observations","cited_arxiv_id":null,"evidence_quote":"Supplies the original preprocessing methodology and the historical quiet-Sun brightness-temperature table on which the template calibration is built."},{"cited_title":"Ratan-600 radio telescope in the 24th solar activity cycle","cited_arxiv_id":null,"evidence_quote":"Describes the RATAN-600 solar observation archive and information system that the package's client accesses."},{"cited_title":"Study of the quiet Sun in the microwave range on the RATAN-600 and BPR radio telescopes in the XX-XXII solar activity cy- cles","cited_arxiv_id":null,"evidence_quote":"Provides the quiet-Sun level subtraction and quiet-Sun reference used in calibration."},{"cited_title":"Revisiting the estimation of solar radio emission flux densities","cited_arxiv_id":null,"evidence_quote":"Defines the calibration-by-convolution approach and the active-region feature calculation the package reimplements."},{"cited_title":"Two-dimensional mapping of the sun with the ratan-600","cited_arxiv_id":null,"evidence_quote":"Documents the traditional RATAN-600 calibration schemes (quiet-Sun antenna temperature and total-flux scaling) that the template method is designed to replace."},{"cited_title":"southern sector with a flat reflector","cited_arxiv_id":null,"evidence_quote":"Gives the RATAN-600 beam-pattern computation needed to convert fitted Gaussian sizes into physical source sizes."}],"review_version":1}