Package: moc-cli
moc-cliA command-line to create and manipulate HEALPixMulti-OrderCoverage maps (MOCs),
, seethis IVOA standard.AboutThisCommandLineInterface (CLI) is made from theRust MOC library.
It implements the v2.0 of theMOC standard,
including (S-)MOCs, T-MOCs and ST-MOCs.For tools able to display MOCs, see:theAladin Desktopsky atlas in Java (also supports MOC operations)theAladin Lite, "a lightweight version of the Aladin Sky Atlas running in the browser".MOCPy, a python wrapper using the very same Rust MOC library.InstallFrom pypi for python usersMOC cli is available inpypi,
you can thus install themocexecutable usingpip:pipinstall-Umoc-cli
moc--helpDebian packageDownload the lastmoc-cli_vxx_yyy.debcorresponding to your architecture
(x86_64_muslhas the most chances to fit your needs)
from thegithub release page.Install the.debby clicking on it or using the command line:sudodpkg-imoc-cli_vxx_yyy.deb
sudoapt-getinstall-fThen you can use the tool:moc-cli
manmoc-cliYou can uninstall using, e.g.:sudodpkg-r$(dpkg-fmoc-cli_vxx_yyy.debPackage)WARNING: using this method, the command line name ismoc-cliinstead ofmocdue to a conflict with an existing debianmocpackage.Pre-compile binaries for MacOS, Linux and WindowsDownload the lastmoc-vxx_yyy.tar.gzcorresponding to your architecture
from thegithub release page.
You probably want ot use:Linux:moc-vxx-x86_64-unknown-linux-musl.tar.gzMacOS:moc-vxx-x86_64-apple-darwin.tar.gzWindows:moc-vxx-.zipWARNING: for linux, usemuslinstead ofgnu(high chances of uncompatibility in the latter case)The tar contains a single executable binary file.tarxzvfmoc-vxx-yyy.tar.gz
./mocCompile from source codeInstall rust(and check that~/.cargo/bin/is in your path),
or update the Rust compiler with:rustupupdateClone themoc lib rustproject:gitclonehttps://github.com/cds-astro/cds-moc-rustInstall from usingcargo:cargoinstall--pathcrates/cli(due to a heavy use ofmonomorphization,
the compilation time may be very long, i.e. more than a minute).Command line helpOnce installed, you can get help messages usingmoc [SUBCOMMAND [SUBSUBCOMMAND [...]]] --help.A the root levelmoc --help:Create,manipulateandfilterfilesusingHEALPixMulti-OrderCoveragemaps(MOCs).

USAGE:moc<SUBCOMMAND>[...]SUBCOMMANDS:convertConvertsaninputformattothe(mostrecentversionsof)anoutputformatfilterFilterfilerowsusingaMOCfromCreateaMOCfromgivenparametershelpPrintsthismessageorthehelpofthegivensubcommand(s)infoPrintsinformationonthegivenMOCopPerformoperationsonMOCstablePrintsMOCconstantsmoc from --help:USAGE:mocfrom<SUBCOMMAND>[...]SUBCOMMANDS:boxCreateaSpatialMOCfromthegivenboxconeCreateaSpatialMOCfromthegivenconeconesCreateaSpatialMOCfromalistofconeswithcentersandradiusindecimaldegrees(onepairperline,format:longitude_deg,latitude_deg,radius_deg)ellipseCreateaSpatialMOCfromthegivenellipticalconehelpPrintsthismessageorthehelpofthegivensubcommand(s)multiCreateaSpatialMOCfromregionsinaCSVinput.Oneregionperinputline.Format:*cone,center_lon_deg,center_lat_deg,radius_deg*ellipse,center_lon_deg,center_lat_deg,semi_maj_axis_deg,semi_min_axis_deg,position_angle_deg*ring,center_lon_deg,center_lat_deg,internal_radius_deg,external_radius_deg*box,center_lon_deg,center_lat_deg,semi_maj_axis_deg,semi_min_axis_deg,position_angle_deg*zone,lon_min_deg,lat_min_deg,lon_max_deg,lat_max_deg*polygon(,complement),vertex_lon_deg_1,vertex_lat_deg_1,vertex_lon_deg_2,vertex_lat_deg_2,...,vertex_lon_deg_n,vertex_lat_deg_npolygonCreateaSpatialMOCfromthegivenpolygonposCreateaSpatialMOCfromalistofpositionsindecimaldegrees(onepairperline,longitudefirst,thenlatitude)ringCreateaSpatialMOCfromthegivenringstcsCreateaSpatialMOCfromaSTC-SinputtimerangeCreateaTimeMOCfromalistoftimerange(onerangeperline,lowerboundfirst,thenupperbound)timerangeposCreateaSpace-TimeMOCfromalistoftimerangeandpositionsindecimaldegrees(tminfirst,thentmax,thenlongitude,andlatitude)..timestampCreateaTimeMOCfromalistoftimestamp(oneperline)timestampposCreateaSpace-TimeMOCfromalistoftimestampandpositionsindecimaldegrees(timestampfirst,thenlongitude,thenlatitude)..vcellsMulti-ordermapinputfileformatzoneCreateaSpatialMOCfromthegivenzonemoc op --help:USAGE:mocop<SUBCOMMAND>[...]SUBCOMMANDS:complementPerformsalogical'NOT'ontheinputMOC(=MOCcomplement)contractRemoveantheinternalbordermadeofcellshavingtheMOCdepth,SMOConlydegradeDegradetheinputMOC(=MOCcomplement)diffPerformsalogical'XOR'between2MOCs(=MOCdifference)extborderReturnstheMOCexternalborder(madeofcellofdepththeMOCdepth),SMOConlyextendAddanextraborderofcellshavingtheMOCdepth,SMOConlyhelpPrintsthismessageorthehelpofthegivensubcommand(s)intborderReturnstheMOCinternalborder(madeofcellofdepththeMOCdepth),SMOConlyinterPerformsalogical'AND'between2MOCs(=MOCintersection)minusPerformsthelogicaloperation'AND(left, NOT(right))'between2MOCs(=leftminusright)sfoldReturnstheunionoftheT-MOCsassociatedtoS-MOCsintersectingthegivenS-MOC.Left:S-MOC,right:ST-MOC,res:T-MOCsplitSplitthedisjointpartsoftheMOCintodistinctMOCs,SMOConly.WARNING:thismaycreatealotoffiles,usefirstoption`--count`tfoldReturnstheunionoftheS-MOCsassociatedtoT-MOCsintersectingthegivenT-MOC.Left:T-MOC,right:ST-MOC,res:S-MOCunionPerformsalogical'OR'between2MOCs(=MOCunion)and so on (e.gmoc op degrade --help).Examplesmoctablespace
mocinforesources/V_147_sdss12.moc.fits
mocinforesources/CDS-I-125A-catalog_MOC.fits
mocopinterresources/V_147_sdss12.moc.fitsresources/CDS-I-125A-catalog_MOC.fitsfitsmy_res.fits
mocinfomy_res.fits

mocfromcone110.0+0.00.1ascii--fold50my_cone.ascii
mocconvert-tsmocmy_cone.asciifits-fmy_cone.fits
mocfromring1013.158329-72.800285.6432310.0ascii--fold80## Frequency MOCsecho"0/0 8/"|mochprint--typefmoc--formatascii-echo"0/0-1 8/"|mocconvert--typesmoc--formatascii-fitsmoc.d8.allfreq.fits
mocinfomoc.d8.allfreq.fits
mochprintmoc.d8.allfreq.fitsforfin{0..63};doecho"5/$f"|mochprint--typefmoc--formatascii---no-header;doneforfin{0..511};doecho"8/$f"|mochprint--typefmoc--formatascii---no-header;doneforfin{0..1023};doecho"9/$f"|mochprint--typefmoc--formatascii---no-header;doneforfin{0..8191};doecho"12/$f"|mochprint--typefmoc--formatascii---no-header;doneforfin{0..65536};doecho"15/$f"|mochprint--typefmoc--formatascii---no-header;doneecho"0.1250.25690.14780.99851.598320.2563500"|\mocfromfreqval9-ascii|\mochprint--typefmoc--formatascii-Building a MOC from theHipparcospositions:egrep"^ *[0-9]"hip.psv|cut-d'|'-f2-3|tr-d' '|mocfrompos5---separator'|'asciiBuild a MOC from XMM observation listBuild a raw MOC from the list of XMM observations, considering a radius of 17 arcmin around
each observation center.
Thexmmdr11_obs_center.17arcmin.csvfile contains 12210RA_CENTER,DEC_CENTER,17arcminrows.Excerpt of thexmmdr11_obs_center.17arcmin.csvfile:> head -10 xmmdr11_obs_center.17arcmin.csv
64.89763,56.02272,0.283333333
263.65793,-32.556,0.283333333
99.36542,6.1115,0.283333333
193.49612,10.215167,0.283333333
58.45729,23.414083,0.283333333
187.05229,-15.758583,0.283333333
167.09784,-77.61408,0.283333333
196.76967,-23.647583,0.283333333
121.03321,5.086472,0.283333333
17.898624,-38.09336,0.283333333
...Create the MOC>timemocfromcones-s,12../../resources/xmmdr11_obs_center.17arcmin.csvfits--force-u64xmm.moc.fits

real0m2,852s
user0m2,812s
sys0m0,028s

>mocinfoxmm.moc.fits
MOCtype:SPACE
MOCindextype:u64
MOCdepth:12MOCcoverage:3.962597748%# Count the number of disjoint regions from the 12210 FOVs>timemocopsplit--count/home/pineau/Eclipse/ARCHES/scriptsNoSync/xmm.moc.fitsascii4414real0m2,617s
user0m2,604s
sys0m0,005sBuild a S-MOC from a STC-S stringExample from the STC-S document:echo"Circle ICRS 147.6 69.9 0.4"|mocfromstcs14-fitsstcs.moc.fits--force-u64
mocviewstcs.moc.fitsmoc.pngauto200Gives:Union of polygons extracted from the ObsCore table in the ESO TAP serviceecho"UNION ICRS (POLYGON 97.910103 -68.229734 98.035349 -68.420531 97.511326 -68.464218 97.391307 -68.272593POLYGON J2000 97.188217 -68.288771 97.305736 -68.48057 96.776416 -68.522768 96.664513 -68.330377POLYGON J2000 96.460678 -68.346375 96.570253 -68.53902 96.038308 -68.579466 95.934565 -68.386491POLYGON J2000 95.729059 -68.401779 95.830709 -68.594846 95.299598 -68.633367 95.203792 -68.440235POLYGON J2000 98.143037 -68.584332 98.270871 -68.777025 97.738257 -68.822153 97.614955 -68.628624POLYGON J2000 97.40776 -68.64555 97.529291 -68.839407 96.99076 -68.882535 96.874102 -68.688121POLYGON J2000 96.665259 -68.704476 96.77987 -68.899046 96.23834 -68.939924 96.12885 -68.745102POLYGON J2000 95.919684 -68.760503 96.027183 -68.955344 95.486003 -68.993812 95.383753 -68.799015POLYGON J2000 98.380832 -68.941608 98.510226 -69.134393 97.970196 -69.180998 97.844529 -68.987451POLYGON J2000 97.634 -69.005104 97.757563 -69.198965 97.211008 -69.242868 97.091422 -69.048526POLYGON J2000 96.879196 -69.06502 96.997918 -69.25945 96.448228 -69.300719 96.333728 -69.1061POLYGON J2000 96.120984 -69.121688 96.233684 -69.316281 95.683977 -69.354548 95.575734 -69.160047POLYGON J2000 98.620662 -69.29853 98.74967 -69.489628 98.203593 -69.537139 98.077564 -69.345424POLYGON J2000 97.864897 -69.363161 97.991114 -69.554985 97.438647 -69.599924 97.315514 -69.407714POLYGON J2000 97.100269 -69.424445 97.22188 -69.616836 96.665842 -69.65841 96.54754 -69.46587POLYGON J2000 96.332041 -69.481439 96.448747 -69.674048 95.891855 -69.712065 95.778776 -69.519528)"|sed-r's/J2000//g'|\mocfromstcs16-fitsstcs.fits--force-u64
mocviewstcs.fitsmoc.pngauto600Gives:Remarks:we so far support onlyICRSso we replace the firtsJ2000in the original string byICRSthe STC-S is not standard (with respect to the STC-S draft) so we remove theJ2000usingsed.Complex polygonecho"Polygon ICRS 259.779020 -36.182932 259.776702 -36.186804 259.771638 -36.185890259.772903 -36.170965 259.770948 -36.168452 259.766725 -36.170651 259.762834 -36.167880259.763731 -36.165062 259.767126 -36.163827 259.768464 -36.153306 259.775446 -36.148788259.769596 -36.135517 259.764601 -36.133574 259.763255 -36.126446 259.755778 -36.124821259.753657 -36.122446 259.752091 -36.125717 259.748402 -36.126581 259.744966 -36.123224259.749312 -36.114598 259.762948 -36.106041 259.759436 -36.103058 259.760376 -36.099663259.765016 -36.098826 259.767684 -36.102082 259.773773 -36.098700 259.768227 -36.092652259.769796 -36.079719 259.774018 -36.074916 259.779750 -36.073295 259.774669 -36.062560259.770285 -36.062490 259.768332 -36.059390 259.770514 -36.056611 259.777253 -36.055429259.792567 -36.057523 259.795238 -36.060699 259.791804 -36.064056 259.782410 -36.062939259.789399 -36.075403 259.787283 -36.077757 259.778147 -36.080762 259.776591 -36.091715259.784863 -36.095193 259.786494 -36.102683 259.794458 -36.104560 259.797513 -36.103525259.800137 -36.102101 259.802003 -36.094898 259.795104 -36.098376 259.791948 -36.096974259.791273 -36.094116 259.796555 -36.089885 259.800794 -36.089963 259.800636 -36.078803259.805260 -36.076262 259.808825 -36.078801 259.807830 -36.084885 259.810448 -36.094643259.808066 -36.103578 259.799912 -36.109740 259.801174 -36.113477 259.805956 -36.115134259.805673 -36.118789 259.801985 -36.120191 259.794028 -36.118194 259.779591 -36.127983259.780279 -36.132041 259.776522 -36.134755 259.785372 -36.148741 259.791126 -36.148934259.793243 -36.143417 259.796550 -36.141837 259.805073 -36.147755 259.803338 -36.150735259.794941 -36.152696 259.792043 -36.155585 259.779929 -36.153563 259.776332 -36.155577259.774520 -36.160554 259.780315 -36.168504"|\mocfromstcs18-fitsstcs_alma1.moc.fits--force-u64
mocviewstcs_alma1.moc.fitsstcs_alma1.moc.pngauto600Gives:Complex polygon with holesEitherecho"Difference ICRS (Polygon 272.536719 -19.461249 272.542612 -19.476380 272.537389 -19.491509 272.540192 -19.499823272.535455 -19.505218 272.528024 -19.505216 272.523437 -19.500298 272.514082 -19.503376272.502271 -19.500966 272.488647 -19.490390  272.481932 -19.490913 272.476737 -19.486589272.487633 -19.455645 272.500386 -19.444996 272.503003 -19.437557 272.512303 -19.432436272.514132 -19.423973 272.522103 -19.421523 272.524511 -19.413250 272.541021 -19.400024272.566264 -19.397500 272.564202 -19.389111 272.569055 -19.383210 272.588186 -19.386539272.593376 -19.381832 272.596327 -19.370541 272.624911 -19.358915 272.629256 -19.347842272.642277 -19.341020 272.651322 -19.330424 272.653174 -19.325079 272.648903 -19.313708272.639616 -19.311098 272.638128 -19.303083 272.632705 -19.299839 272.627971 -19.289408272.628226 -19.276293 272.633750 -19.270590 272.615109 -19.241810 272.614704 -19.221196272.618224 -19.215572 272.630809 -19.209945 272.633540 -19.198681 272.640711 -19.195292272.643028 -19.186751 272.651477 -19.182729 272.649821 -19.174859 272.656782 -19.169272272.658933 -19.161883 272.678012 -19.159481 272.689173 -19.176982 272.689395 -19.183512272.678006 -19.204016 272.671112 -19.206598 272.664854 -19.203523 272.662760 -19.211156272.654435 -19.214434 272.652969 -19.222085 272.656724 -19.242136 272.650071 -19.265092272.652868 -19.274296 272.660871 -19.249462 272.670041 -19.247807 272.675533 -19.254935272.673291 -19.273917 272.668710 -19.279245 272.671460 -19.287043 272.667507 -19.293933272.669261 -19.300601 272.663969 -19.307130 272.672626 -19.308954 272.675225 -19.316490272.657188 -19.349105 272.657638 -19.367455 272.662447 -19.372035 272.662232 -19.378566272.652479 -19.386871 272.645819 -19.387933 272.642279 -19.398277 272.629282 -19.402739272.621487 -19.398197 272.611782 -19.405716 272.603367 -19.404667 272.586162 -19.422703272.561792 -19.420008 272.555815 -19.413012 272.546500 -19.415611 272.537427 -19.424213272.533081 -19.441402Union (Polygon 272.511081 -19.487278 272.515300 -19.486595 272.517029 -19.471442272.511714 -19.458837 272.506430 -19.459001 272.496401 -19.474322 272.504821 -19.484924Polygon 272.630446 -19.234210 272.637274 -19.248542 272.638942 -19.231476 272.630868 -19.226364))"orecho"Intersection ICRS (Polygon 272.536719 -19.461249 272.542612 -19.476380 272.537389 -19.491509 272.540192 -19.499823272.535455 -19.505218 272.528024 -19.505216 272.523437 -19.500298 272.514082 -19.503376272.502271 -19.500966 272.488647 -19.490390  272.481932 -19.490913 272.476737 -19.486589272.487633 -19.455645 272.500386 -19.444996 272.503003 -19.437557 272.512303 -19.432436272.514132 -19.423973 272.522103 -19.421523 272.524511 -19.413250 272.541021 -19.400024272.566264 -19.397500 272.564202 -19.389111 272.569055 -19.383210 272.588186 -19.386539272.593376 -19.381832 272.596327 -19.370541 272.624911 -19.358915 272.629256 -19.347842272.642277 -19.341020 272.651322 -19.330424 272.653174 -19.325079 272.648903 -19.313708272.639616 -19.311098 272.638128 -19.303083 272.632705 -19.299839 272.627971 -19.289408272.628226 -19.276293 272.633750 -19.270590 272.615109 -19.241810 272.614704 -19.221196272.618224 -19.215572 272.630809 -19.209945 272.633540 -19.198681 272.640711 -19.195292272.643028 -19.186751 272.651477 -19.182729 272.649821 -19.174859 272.656782 -19.169272272.658933 -19.161883 272.678012 -19.159481 272.689173 -19.176982 272.689395 -19.183512272.678006 -19.204016 272.671112 -19.206598 272.664854 -19.203523 272.662760 -19.211156272.654435 -19.214434 272.652969 -19.222085 272.656724 -19.242136 272.650071 -19.265092272.652868 -19.274296 272.660871 -19.249462 272.670041 -19.247807 272.675533 -19.254935272.673291 -19.273917 272.668710 -19.279245 272.671460 -19.287043 272.667507 -19.293933272.669261 -19.300601 272.663969 -19.307130 272.672626 -19.308954 272.675225 -19.316490272.657188 -19.349105 272.657638 -19.367455 272.662447 -19.372035 272.662232 -19.378566272.652479 -19.386871 272.645819 -19.387933 272.642279 -19.398277 272.629282 -19.402739272.621487 -19.398197 272.611782 -19.405716 272.603367 -19.404667 272.586162 -19.422703272.561792 -19.420008 272.555815 -19.413012 272.546500 -19.415611 272.537427 -19.424213272.533081 -19.441402Not (Polygon 272.511081 -19.487278 272.515300 -19.486595 272.517029 -19.471442272.511714 -19.458837 272.506430 -19.459001 272.496401 -19.474322 272.504821 -19.484924)Not (Polygon 272.630446 -19.234210 272.637274 -19.248542 272.638942 -19.231476 272.630868 -19.226364))"|\mocfromstcs16-fitsstcs_alma2.moc.fits--force-u64
mocviewstcs_alma2.moc.fitsstcs_alma2.moc.pngauto600Gives:Build a MOC from a (non STC-S) multi-region fileRemark: this has been done before the S-MOC from STC-S features, you can use both methods.Build a raw MOC from a list of polygon.
Thepolygon_list.txtfile contains 1787POLYGON lon1_deg lat1_deg lon2_deg lat2_deg lon3_deg lat3_deg lon4_deg lat4_degrows.Excerpt of thepolygon_list.txtfile:> head -10 polygon_list.txt
POLYGON 132.27592361897194 -85.50776984199415 227.28213604169053 -85.52848858549962 317.3696636049649 -85.13473097310337 42.70728242909465 -85.11295896964907
POLYGON 60.13229923319004 -86.16765734057081 300.83194062732554 -86.17690658712614 339.2709854792048 -80.83619292300155 21.676880345899917 -80.83215524499103
POLYGON 95.08276649945338 -86.21643167152601 335.2202213021057 -86.150123609087 13.974112489662907 -80.8408533466873 56.47368697052322 -80.86811225215042
POLYGON 131.43710822387513 -86.39620351676153 8.178879432043509 -86.09619481394972 48.49769627242518 -80.91228518381683 91.58845924785103 -81.03726056953703
POLYGON 169.54242332201397 -86.41549363302556 41.96380368178154 -86.22055148573337 83.93923381023212 -81.07936822440465 127.76955702379145 -81.16012444797337
POLYGON 209.38441456079454 -86.4385049405928 76.79919106658016 -86.34575852902184 120.7627522443793 -81.26318262561986 165.44708425571173 -81.30186091232301
POLYGON 247.79227731086206 -86.41524470836133 113.93143603491714 -86.4038508557833 158.42057918850884 -81.32131955955516 203.32586412458323 -81.32529595069136
POLYGON 284.61617428938314 -86.30625319728074 151.35533186836295 -86.4968774518728 195.56600175472337 -81.34533854250965 240.3724573793694 -81.26497727688265
POLYGON 319.9366584543485 -86.20323016702716 191.02944591530553 -86.47600995359106 233.34166080086834 -81.22312388507225 277.40115124704073 -81.10906373841831
POLYGON 352.72112816815314 -86.11070694641083 229.39278681105083 -86.38518393742109 269.2801464003224 -81.03542860454485 312.382448010481 -80.92171074918758
...time moc from multi 12 ../../resources/polygon_list.txt fits --force-u64 test.moc.fits>timemocfrommulti12resources/polygon_list.txtfits--force-u64test.moc.fits

real0m5,891s
user0m5,852s
sys0m0,008s

>mocinfotest.moc.fits
MOCtype:SPACE
MOCindextype:u64
MOCdepth:12MOCcoverage:99.697673817%In the example, all regions are polygons, but it is also possible to mix regions in a single file usong the syntax:CONE lon_deg lat_deg radius_deg
ELLIPSE lon_deg lat_deg a_deg b_deg pa_deg
RING lon_deg lat_deg internal_radius_deg external_radius_deg
BOX lon_deg lat_deg a_deg b_deg pa_deg
ZONE lon_min_deg lat_min_deg lon_max_deg lat_max_deg
POLYGON lon1_deg lat1_deg lon2_deg lat2_deg ... lonn_deg latn_deg
POLYGON complement lon1_deg lat1_deg lon2_deg lat2_deg ... lonn_deg latn_degExample of Stream MOCThe input list must be sorted according to the HEALPix NESTED Z-order curve.echo"qty=HPXdepth=629/210191438858682368-21026180760286003229/1207809125065424896-120787949380960256029/1386193891555803136-138626426029998080029/1436648281131188224-143671864987536588829/1437703812293853184-143777418103803084829/1440025980851716096-144009634959589376029/1440237087084249088-144030745582842675229/2488801744075620352-2488872112819798016"|mocconvert--fstream-tsmocfitsmutlicone.moc.fitsView a MOCmocviewCDS-I-125A-catalog_MOC.fitstoto.pngallsky800mocviewCDS-I-125A-catalog_MOC.fitstoto.pngauto800mocviewCDS-I-125A-catalog_MOC.fitstoto.pngcustom-l180.0-b-45.0sfl1600800Performances hintBuild MOC from positionsOn a regular desktop, it takes3.7sto build the MOC atorder 7of the16,622,442positions of theKIDS DR2table:timemocfrompos7kids_dr2.csv-s,ascii--fold80>kids_dr2.moc.ascii
>3.7son16_622_442positioninafileof552MBFilter file using a MOCOn a classical HDD (~130 MB/s), the disk is the limiting factor when filtering a file.
Tests performed on a 25 GB file containing 16_622_443 rows (KIDS DR2):HDDSSDwc -l3m21s = 127 MB/s19s = 1347 MB/smoc filter3m21s = 127 MB/s31s =  825 MB/sWe get the same results with or without multithreading.Now we select only 3 fields. We get a ~1 GB (961 MB) file.
Since the results are the same for HDD and SSD, we deduce that the full file is in the disk cache:HDDSSDwc -l0.3s = 3200 MB/s0.3s = 3200 MB/smoc filter4s   =  240 MB/s4s   =  240 MB/smoc filter 4T2s   =  480 MB/s2s   =  480 MB/sCommands used:timemocfilterpositionSMOC_GLIMPSE_u32.fitskids_dr2.csv--has-header--lonRAJ2000--latDECJ2000>/dev/nulltimemocfilterpositionSMOC_GLIMPSE_u32.fitskids_dr2.csv--has-header--lonRAJ2000--latDECJ2000--n-threads4>/dev/null(no rows in output)To-do listRemovestructopand replace byclap v3MOC from cells (simpler than MOC from pos)SMOC from ranges (simpler than MOC from pos)MOC from vcells with a simple constraint?Contactgnuastro?Add filter on ST-MOCsAdd ST-MOC 'intersection' and 'folds' in streaming mode (for a low memory footprint)Add an optionoverlapping (default), fully inside, partially inside, center insidefor cone, polygon, ...Support valued MOCs (<=> Multi-Order Maps)?LicenseLike most projects in Rust, this project is licensed under either ofApache License, Version 2.0, (LICENSE-APACHEorhttp://www.apache.org/licenses/LICENSE-2.0)MIT license (LICENSE-MITorhttp://opensource.org/licenses/MIT)at your option.ContributionUnless you explicitly state otherwise, any contribution intentionally submitted
for inclusion in this project by you, as defined in the Apache-2.0 license,
shall be dual licensed as above, without any additional terms or conditions.AcknowledgementsThis work has been supported by the ESCAPE project.ESCAPE - TheEuropeanScienceCluster ofAstronomy &Particle PhysicsESFRI Research Infrastructures -
has received funding from theEuropean Union’s Horizon 2020research and innovation programme underGrant Agreement no. 824064.