Note: The time it typically takes to run each query and the # of objects found (in runs 752/756) is indicated in the comments below the query. The estimated time according to the query analysis (cost prediction) is also indicated in parentheses. The actual time will depend on a number of factors such as the system load and the number and type of SELECT fields in the query.
// Paula Szkody <szkody@alicar.astro.washington.edu> // Search for Cataclysmic Variables and pre-CVs with White Dwarfs and // very late secondaries: // u-g < 0.4 // g-r < 0.7 // r-i > 0.4 // i-z > 0.4 SELECT obj.field.segment.run, obj.field.segment.camCol, obj.field.segment.rerun, obj.field.field, obj.objID, u,g,r,i,z, obj.ra, obj.dec FROM sxPrimary WHERE ( u - g < 0.4 && g - r < 0.7 && r - i > 0.4 && i - z > 0.4 ) // Simple enough, but note that we run it on sxPrimary, a subclass of sxTag // that includes sxGalaxy, sxStar, sxSky and sxUnknown. This excludes the // sxBad and sxSecondary classes which need not be searched. Object // members are extracted using the "obj" association-link in the tag class. // Runs in 1438s (est 1566) and finds 83969 objs.
// (Robert H. Lupton <rhl@astro.princeton.edu>) SELECT field.segment.run, field.segment.camCol, field.field, objID, objRowc,objColc,rowv,colv,rowvErr,colvErr, objFlags,flags,psfCounts,psfCountsErr FROM sxPhotoPrimary WHERE ( ((rowv * rowv) / (rowvErr * rowvErr) + (colv * colv) / (colvErr * colvErr) > 4) ) // Runs in 977s (est. 132) and finds 298882 objs.
// (Robert H. Lupton <rhl@astro.princeton.edu>) // coordinate cut --> cut in ra --> 40:100 SELECT tag.g, tag.r FROM sxPhotoObj WHERE ( ((-0.642788 * tag.cx + 0.766044 * tag.cy>=0) AND (-0.984808 * tag.cx - 0.173648 * tag.cy<0)) ) // This query currently returns an empty query execution tree, i.e. // no nodes are found to satisfy this cut. // Another coordinate cut: SELECT psfCounts, rowv, colv, id, field.field, field.segment.run,field.segment.camCol FROM sxPhotoObj WHERE ( ((-0.707107 * tag.cx -0.707107 * tag.cy>=0) AND (-0.694658 * tag.cx -0.71934 * tag.cy<0)) ) // This one runs in 162s (est 90) but finds 0 objs.
// (Robert H. Lupton <rhl@astro.princeton.edu>) // Searching for a particular object in a particular field. SELECT objID, field.field, ra, dec FROM sxPhotoObj WHERE ( objID = 14 && field.field = 11 ) // Runs in s (est ).
// Michael Strauss <strauss@astro.princeton.edu> // For all galaxies with r_Petro < 18, not saturated, not bright, not // edge, give me those whose centers are appreciably bluer than their // outer parts. That is, define the center color as: u_psf - g_psf And // define the outer color as: u_model - g_model Give me all objects // which have (u_model - g_model) - (u_psf - g_psf) < -0.4 SELECT u,g,photoobj.objID // or whatever you want from each object FROM sxGalaxy WHERE ( (flag1 & (OBJECT1_SATUR | OBJECT1_BRIGHT | OBJECT1_EDGE) == 0) && (photoobj.petroRad[2] < 18) && (((photoobj.modelCounts[0] - photoobj.modelCounts[1]) - (photoobj.psfCounts[0] - photoobj.psfCounts[1])) < -0.4) ) // Notes: r_Petro -> petroRad[2] (3rd element of ugriz array) u_psf, // g_psf -> psfCounts[0], psfCounts[1] u_model, g_model -> // modelCounts[0], modelCounts[1] ** these are the same as ugriz, so // if you can use (u-g) instead of (modelCounts[0] - modelCounts[1]) // it runs twice as fast! The search is performed on the sxGalaxy // subclass of sxTag, so only galaxy objects are searched and you dont // need the "if galaxy..." The petroRad, modelCounts and psfCounts // are members of the sxPhotoObj class, which is accessed via the // "photoobj" association link in the tag class. Since the query is // done on tag objects, you need the "photoobj." prepended to each // photoobj member in the SELECT list. A combination of flags is used // to filter out saturated, bright and edge objects. // // Runs in 598s (est. 643) and finds 23737 objs (using u-g).
// Michael Strauss <strauss@astro.princeton.edu> // Give me the PSF colors of all stars brighter than 20th (rejecting on // various flags) that have PSP_STATUS = 2 // // This query can be formulated in at least 2 ways, but the second // being much faster than the first: // Method 1: SELECT photoobj.psfCounts, // or whatever you want from each object field.segment.run, field.segment.camCol, field.segment.rerun, field.field FROM sxStar WHERE ( obj.psfCounts[1] < 20 && (field.pspStatus = 2) ) // The search is performed on the sxStar subclass of sxTag, so only // star objects are searched. // PSP_STATUS -> field.pspStatus // Runs in 727s (est. 918) but finds 0 objs. [ART] // Finds tons of objects if pspStatus check is left out. // Method 2 (this is an example of an association query): SELECT field.segment.run, field.segment.camCol, field.segment.rerun, field.field, objID,ra,dec FROM ( SELECT obj FROM field WHERE pspStatus = 2 ) WHERE ( objType = AR_OBJECT_TYPE_STAR && psfCounts[2] < 20 ) // The second query uses the knowledge that there are far fewer fields than // objects, and so drastically narrows the number of objects found by using // an association query on the field class. We first get all objects // belonging to fields with pspStatus = 2, then apply the star test and // psfCounts predicate to all such objects. // Runs in < 2s (est 10) and finds 0 objs (FAST!).
// (James Annis <annis@fnal.gov>) // if {AR_DFLAG_BINNED1 || AR_DFLAG_BINNED2 || AR_DFLAG_BINNED4} { // if {! ( AR_DFLAG_BLENDED && !( AR_DFLAG_NODEBLEND || AR_DFLAG_CHILD))} { // if { galaxy } { ;# not star, asteroid, or bright // if { primary_object} { // if {petrocounts{i} < 23 } { accept } // } // } // } // } SELECT obj.field.segment.run, // or whatever you want obj.field.segment.camCol, obj.field.segment.rerun, obj.field.field, obj.objID, obj.ra, obj.dec FROM galaxy // select galaxy and primary only WHERE ( flag1 & (AR_DFLAG1_BINNED1 | AR_DFLAG1_BINNED2 | AR_DFLAG1_BINNED4) > 0 && flag1 & (AR_DFLAG1_BLENDED | AR_DFLAG1_NODEBLEND | AR_DFLAG1_CHILD) != AR_DFLAG1_BLENDED && obj.petroCounts[3] < 23 ) // Notes: AR_DFLAG -> AR_DFLAG1 or OBJECT1 // petrocounts -> petroCounts[3] (i is 4th in array[0:4] of u,g,r,i,z) // Selecting sxGalaxy (or galaxy) class already ensures it is a primary // object because sxGalaxy is a subclass of sxPrimary. // The petroCounts is a member of the sxPhotoObj class, which is accessed // via the "photoobj" (alias "obj") association link in the tag class. // // Takes almost an hour to run and finds almost all of the 1.9M galaxies!
// (James Annis <annis@fnal.gov>) // if {AR_DFLAG_BINNED1 || AR_DFLAG_BINNED2 || AR_DFLAG_BINNED4} { // if {! ( AR_DFLAG_BLENDED && !( AR_DFLAG_NODEBLEND || AR_DFLAG_CHILD)} { // if { galaxy } { ;# not star, asteroid, or bright // if (!AR_DFLAG_NOPETRO) { // if { petrorad > 15 } { accept } // } else { // if { petror50 > 7.5 } { accept } // } // if (AR_DFLAG_TOO_LARGE && petrorad > 2.5 ) { accept } // if ( AR_DFLAG_SATUR && petrorad < 17.5) { don't accept } // } // } // } SELECT obj.field.segment.run, obj.field.segment.camCol, obj.field.segment.rerun, obj.field.field, obj.objID, obj.ra, obj.dec FROM galaxy WHERE ( flag1 & (AR_DFLAG1_BINNED1 | AR_DFLAG1_BINNED2 | AR_DFLAG1_BINNED4) > 0 && flag1 & (AR_DFLAG1_BLENDED | AR_DFLAG1_NODEBLEND | AR_DFLAG1_CHILD) != AR_DFLAG1_BLENDED && ( ( flag1 & AR_DFLAG1_NOPETRO == 0 && obj.petroRad[3] > 15 ) || ( flag1 & AR_DFLAG1_NOPETRO > 0 && obj.petroR50[3] > 7.5 ) ) || ( flag1 & AR_DFLAG1_TOO_LARGE >0 && obj.petroRad[3] > 2.5 ) && ( flag1 & AR_DFLAG1_SATUR == 0 || obj.petroRad[3] >= 17.5 ) ) // Notes: AR_DFLAG -> AR_DFLAG1 or OBJECT1 // petrorad -> petroRad[3] (i is 4th in array[0:4] of u,g,r,i,z) // petror50 -> petroR50[3] similarly // The search is performed on the sxGalaxy (alias "galaxy") subclass of // sxTag, so only galaxy objects are searched. // The petrorad and petroR50 are members of the sxPhotoObj class, which // is accessed via the "photoobj" (alias "obj") association link in // the tag class. // Runs in 790s (est 643) and returns 11065 objs. Jim thinks that this is too // many objects, and we are investigating whether we formulated the query // as he intended it or not. Same is the case for the next two queries.
// (James Annis <annis@fnal.gov>) // if {AR_DFLAG_BINNED1 || AR_DFLAG_BINNED2 || AR_DFLAG_BINNED4} { // if {! ( AR_DFLAG_BLENDED && !( AR_DFLAG_NODEBLEND || AR_DFLAG_CHILD)} { // if { galaxy } { ;# not star, asteroid, or bright // if { primary_object} { // if {!AR_DFLAG_CR && !R_DFLAG_INTERP} // if { frame_seeing < 1.5" } { // if { counts_model<i>-counts_model<z> - // (reddening<i> - reddening<z>) > 1.0 } { // accept // } // } // } // } // } // } // } SELECT field.segment.run, field.segment.camCol, field.segment.rerun, field.field, obj.objID, obj.ra, obj.dec FROM galaxy WHERE ( flag1 & (AR_DFLAG1_BINNED1 | AR_DFLAG1_BINNED2 | AR_DFLAG1_BINNED4) > 0 && flag1 & (AR_DFLAG1_BLENDED | AR_DFLAG1_NODEBLEND | AR_DFLAG1_CHILD) != AR_DFLAG1_BLENDED && flag1 & (AR_DFLAG1_CR | AR_DFLAG1_INTERP) == 0 && field.psfWidth[2] < 1.5 && (i - z - (obj.reddening[3] - obj.reddening[4]) > 1.0 ) ) // i - z used inst. of modelCounts<i> - modelCounts<z> // Runs in 1043s (est 643), finds 29648 objects.
{ // (James Annis <annis@fnal.gov>) // if {AR_DFLAG_BINNED1 || AR_DFLAG_BINNED2 || AR_DFLAG_BINNED4} { // if {! ( AR_DFLAG_BLENDED && !( AR_DFLAG_NODEBLEND || AR_DFLAG_CHILD)} { // if {!AR_DFLAG_EDGE & !AR_DFLAG_SATUR} { // if { galaxy} { ;# not star, asteroid, or bright // if { primary_object} { // if {! (petrocounts<2> < 15.5 && petror50<2> < 2) } { // if {petrocounts<r> > 0 && counts_model<g> > 0 && // counts_model<r> > 0 && counts_model<i> > 0 } { // petSB = deRed_r + 2.5*log10(2*3.1415*petror50<r>^2) // deRed_g = petrocounts<g> - reddening<g> // deRed_r = petrocounts<r> - reddening<r> // deRed_i = petrocounts<i> - reddening<i> // deRed_gr = deRed_g - deRed_r // deRed_ri = deRed_r - deRed_i // cperp = deRed_ri - deRed_gr/4.0 - 0.18 // cpar = 0.7*deRed_gr + 1.2*(deRed_ri -0.18) // if {(deRed_r < 19.2 && deRed_r < 13.1 + cpar/0.3 && // abs(cperp) < 0.2 && petSB < 24.2 ) || // (deRed_r < 19.5 && cperp > 0.45 - deRed_gr/0.25 && // deRed_gr > 1.35 + deRed_ri*0.25 && petSB < 23.3) { // accept ;# whew!!! // } // } // } // } // } // } // } // } // SELECT field.segment.run, field.segment.camCol, field.segment.rerun, field.field, obj.objID, obj.ra, obj.dec FROM galaxy WHERE ( flag1 & (AR_DFLAG1_BINNED1 | AR_DFLAG1_BINNED2 | AR_DFLAG1_BINNED4) > 0 && flag1 & (AR_DFLAG1_BLENDED | AR_DFLAG1_NODEBLEND | AR_DFLAG1_CHILD) != AR_DFLAG1_BLENDED && flag1 & (AR_DFLAG1_EDGE | AR_DFLAG1_SATUR) == 0 && obj.petroCounts[3] > 17.65 && (obj.petroCounts[2] > 15.5 || obj.petroR50[2] > 2 ) && (obj.petroCounts[2] > 0 && g > 0 && r > 0 && i > 0 ) && ( (obj.petroCounts[2] - obj.reddening[2] < 19.2) && (obj.petroCounts[2] - obj.reddening[2] < 13.1 + // deRed_r < 13.1 + (7/3)*( g - obj.reddening[1] - // 0.7 / 0.3 * deRed_gr r + obj.reddening[2] ) + 4 *( r - obj.reddening[2] - // 1.2 / 0.3 * deRed_ri i + obj.reddening[3] ) -4 * 0.18 ) && ( ( r - obj.reddening[2] - i + obj.reddening[3] - (g - obj.reddening[1] - r + obj.reddening[2])/4 - 0.18 ) < 0.2 ) && ( ( r - obj.reddening[2] - i + obj.reddening[3] - (g - obj.reddening[1] - r + obj.reddening[2])/4 - 0.18 ) > -0.2 ) && // petSB - deRed_r + 2.5 log10(2Pi*petroR50^2) ( (obj.petroCounts[2] - obj.reddening[2]) + 2.5 * LOG( 2 * 3.1415 * obj.petroR50[2] * obj.petroR50[2] ) < 24.2 ) ) || ( (obj.petroCounts[2] - obj.reddening[2] < 19.5) && ( ( r - obj.reddening[2] - // cperp = deRed_ri i + obj.reddening[3] - // - deRed_gr/4 - 0.18 (g - obj.reddening[1] - r + obj.reddening[2])/4 - 0.18 ) > 0.45 - 4*( g - obj.reddening[1] - // 0.45 - deRed_gr/0.25 r + obj.reddening[2] ) ) && ( g - obj.reddening[1] - r + obj.reddening[2] > 1.35 + 0.25 *( r - obj.reddening[2] - i + obj.reddening[3] ) ) && // petSB - deRed_r + 2.5 log10(2Pi*petroR50^2) ( (obj.petroCounts[2] - obj.reddening[2]) + 2.5 * LOG( 2 * 3.1415 * obj.petroR50[2] * obj.petroR50[2] ) < 23.3 ) ) ) // query runs in 2035 seconds, returning 19942 objects. // after having added the obj.petrocounts[3] > 17.65, there are // still 16944 objects.
// Gordon Richards <richards@oddjob.uchicago.edu> // Low-z QSO candidates using the following cuts: // // -0.27 <= u-g < 0.71 // -0.24 <= g-r < 0.35 // -0.27 <= r-i < 0.57 // -0.35 <= i-z < 0.70 // g <= 22 // objc_type == 3 SELECT g,obj.objID // or whatever you want returned FROM sxGalaxy // takes care of objc_type == 3 WHERE ( (g <= 22) && (u-g >= -0.27) && (u-g < 0.71) && (g-r >= -0.24) && (g-r < 0.35) && (r-i >= -0.27) && (r-i < 0.57) && (i-z >= -0.35) && (i-z < 0.70) ) // // Runs in 323s (est. 643) and finds 12054 objs. // OR, do it using the BETWEEN operator: SELECT field.segment.run, field.segment.camCol, field.segment.rerun, field.field, obj.objID, obj.ra, obj.dec FROM sxGalaxy WHERE g <= 22 && (u-g) BETWEEN -0.27 AND 0.71 && (g-r) BETWEEN -0.24 AND 0.35 && (r-i) BETWEEN -0.27 AND 0.57 && (i-z) BETWEEN -0.35 AND 0.70 // This runs in 11:41 minutes and returns 12054 objects. The longer // time is due to the additional association links it has to follow up // in the SELECT statement. The more member fields you want to extract // and the more indirection is involved (i.e. association of // association of ...), the longer it will take to get the results // back. As for the second part of this query: Then I look to see if // any of the output objects are within 10" of each other to see if // they might be gravitational lens candidates. For output, I spit out // run, rerun, camcol, field, id, g', the 4 colors, and the FIRST peak // flux.
Comment: This would have to be done with an analysis engine. There is no way to do this with the SX currently (although you can do a proximity query on a single object at a time).
// Gordon Richards <richards@oddjob.uchicago.edu> // Another useful query is to see if the errors on moving (or apparently // moving objects) are correct. For example it used to be that some // known QSOs were being flagged as moving objects. One way to look for // such objects is to compare the velocity to the error in velocity and // see if the "OBJECT1_MOVED" or "OBJECT2_BAD_MOVING_FIT" is set. So // return objects with // // objc_type == 3 // sqrt(rowv*rowv + colv*colv) >= sqrt(rowvErr*rowvErr + colvErr*colvErr) // // then output, the velocity, velocity errors, i' magnitude, and the // relevant "MOVING" object flags. SELECT obj.rowv, obj.colv, obj.rowvErr, obj.colvErr, i, flag1 & OBJECT1_OBJECT_MOVED, flag2 & OBJECT2_BAD_MOVING_FIT FROM sxGalaxy WHERE ( (flag1 & OBJECT1_OBJECT_MOVED) > 0 || (flag2 & OBJECT2_BAD_MOVING_FIT) > 0 && (obj.rowv * obj.rowv + obj.colv * obj.colv) >= (obj.rowvErr * obj.rowvErr + obj.colvErr * obj.colvErr) ) // Runs in 1615s (est. 643) and finds 72987 objs with flags.
// Karl Glazebrook <kgb@pha.jhu.edu> // So as a newcomer I might want to do somethink like 'give me the colours // of 100,000 random objects from all fields which are survey quality' so // then I could plot up colour-colour diagrams and play around with // more sophisticated cuts. How would I do that? // // COMMENT: // Unfortunately, it is not possible to get a random sample using the SX (yet). // One thing you might do is get all the objects in a given database file // in the federation. There are currently ~ 200 DBs in the SX, and getting // all the objects in one DB wd give you several thousand objects, though // all in a given region of the sky. To have a sample you might also just // select a certain run and camcol and investigate only the galaxies from // there: SELECT * FROM ( SELECT obj FROM field WHERE segment.run = 752 && segment.camcol = 2 ) WHERE objType = 3
// (Dan VandenBerk <danvb@fnal.gov>) // We have a list of objects -- RA and DEC -- for which we would like // matches and all of the tsObj data. Can I send you the list?
This can be run using the ProxList server to process the datafile one by one. See section on proxlist for details.
// (Xiaohui Fan et.al. <fan@astro.princeton.edu>) // quasar finding query SELECT obj.field.segment.run, obj.field.segment.camCol, obj.field.segment.rerun, obj.field.field, obj.objID, u,g,r,i,z, obj.ra, obj.dec FROM sxStar // or sxGalaxy WHERE ( ( u - g > 2.0 || u > 22.3 ) && ( i < 19 ) && ( i > 0 ) && ( g - r > 1.0 ) && ( r - i < 0.08 + 0.42 * (g - r - 0.96) || g - r > 2.26 ) && ( i - z < 0.25 ) )