Skip to main content
zenodoopen

Data and software for "Correcting Turbulence-induced Errors in Fiber Positioning for the Dark Energy Spectroscopic Instrument"

<p>Supplementary material to the DESI publication "Correcting Turbulence-induced Errors in Fiber Positioning for the Dark Energy Spectroscopic Instrument".</p> <p>The main "turbfigures.py" script generates the figures in the paper from the included data files.</p> <p>Contents:</p> <p><strong>Software files</strong></p> <ul> <li>turbfigures.py: Turbulence plotting and analysis plotting routines.</li> <li>turbulence.py: Analysis routines called by turbfigures.py. &nbsp;The live version of this code in production for desi is in the desimeter package (https://github.com/desihub/desimeter/blob/main/py/desimeter/turbulence.py)</li> </ul> <p><strong>Data files</strong></p> <ul> <li>coord-summary-20240124-pm.fits <ul> <li>Measured centroids of fibers in for 400 consecutive images of the focal plane while at zenith. &nbsp;File contains the following columns: <ul> <li>expid - exposure ID</li> <li>location - "location" of fiber in focal plane; ranges from 0 - 10000. &nbsp;Fibers on petal 0 have numbers between 0 and 1000, etc. &nbsp;There are only 500 positioners per petal, so most locations are not populated.</li> <li>move - in real data, this indexes over the moves in a DESI positioning loop; garbage information here.</li> <li>fpa_{x,y} - measured position of the fiber in this exposure</li> <li>req_{x,y} - requested position of the fiber in this exposure; not used for this data set where positioners are fixed in location</li> <li>{x,y}turb - empty in this file; gets filled in by turbfigures.py with measured turbulence</li> <li>flags_cor - flags indicating that a positioner or fiber may be problematic</li> <li>postype - flags indicating that a location corresponds to a real positioner vs. a fiducial</li> <li>expected_{x,y} - empty in this file; gets filled in by turbfigures.py with "expected" positions of each fiber, so that fpa_{x,y} - expected_{x,y} is a noisy estimate of the turbulence seen by the fiber.</li> </ul> </li> <li>Note that this file has an awkward structure. &nbsp;It has 10000 rows, one for each possible location. &nbsp;Most fields are then 400 element arrays that gives the corresponding values, corresponding to the 400 exposures present in the file.</li> </ul> </li> <li>coordinates-stats.ecsv <ul> <li>statistics of positioning accuracy and turbulence amplitude in DESI positioning loops. &nbsp;Measured RMSes are the 5-sigma clipped root-mean-square positioning offset in 2D: sqrt(mean(dx^2 + dy^2)). &nbsp;Measured medians are median(sqrt(dx^2 + dy^2)).</li> <li>Contents: <ul> <li>coord_filename - file name of DESI coordinates file statistics were drawn from</li> <li>rms_turbulence - RMS for the turbulent contribution to the positioning error</li> <li>rms_positioning - RMS for positioning after removing turbulence</li> <li>rms_total - Total RMS</li> <li>med_turbulence - median turbulence in exposure</li> <li>med_positioning - median positioning error in exposure</li> <li>med_total - median total turbulence + positioning error in exposure</li> <li>expid - exposure id number</li> </ul> </li> </ul> </li> </ul> <p>Dependencies: The included software uses the DESI software stack and otherwise the usual python astronomy packages: numpy scipy matplotlib astropy. &nbsp;Alternatively, people with access to NERSC can load the default DESI environment and pull in all needed dependencies.</p>

ShareScore

24/100

Overall dataset sharing score

Score breakdown

These five areas show where the dataset supports — or may limit — practical reuse.

Stewardship
4
Harmonization
4
Access
16
Reuse readiness
0
Engagement
0