Changeset 34772 for branches/czw_branch/20120906/Ohana
- Timestamp:
- Dec 6, 2012, 6:32:19 PM (14 years ago)
- Location:
- branches/czw_branch/20120906/Ohana
- Files:
-
- 2 deleted
- 120 edited
- 25 copied
-
. (modified) (1 prop)
-
src/addstar/src/ReadStarsFITS.c (modified) (7 diffs)
-
src/addstar/src/mkcmf.c (modified) (9 diffs)
-
src/addstar/src/psps_ids.c (modified) (2 diffs)
-
src/addstar/test/delstar.dvo (copied) (copied from trunk/Ohana/src/addstar/test/delstar.dvo )
-
src/addstar/test/relphot.stacks.dvo (copied) (copied from trunk/Ohana/src/addstar/test/relphot.stacks.dvo )
-
src/delstar/Makefile (modified) (5 diffs)
-
src/delstar/doc/delete_photcodes.txt (copied) (copied from trunk/Ohana/src/delstar/doc/delete_photcodes.txt )
-
src/delstar/include/delstar.h (modified) (5 diffs)
-
src/delstar/src/ConfigInit.c (modified) (3 diffs)
-
src/delstar/src/args.c (modified) (5 diffs)
-
src/delstar/src/delete_image_photcodes.c (copied) (copied from trunk/Ohana/src/delstar/src/delete_image_photcodes.c )
-
src/delstar/src/delete_imagefile.c (modified) (3 diffs)
-
src/delstar/src/delete_imagename.c (modified) (2 diffs)
-
src/delstar/src/delete_photcodes.c (copied) (copied from trunk/Ohana/src/delstar/src/delete_photcodes.c )
-
src/delstar/src/delstar.c (modified) (2 diffs)
-
src/delstar/src/delstar_client.c (copied) (copied from trunk/Ohana/src/delstar/src/delstar_client.c )
-
src/dvomerge/src/dvomergeHistory.c (modified) (1 diff)
-
src/getstar/src/ConfigInit.c (modified) (3 diffs)
-
src/getstar/src/MatchImages.c (modified) (1 diff)
-
src/getstar/src/args.c (modified) (2 diffs)
-
src/getstar/src/select_by_region.c (modified) (3 diffs)
-
src/kapa2/src/SetColormap.c (modified) (12 diffs)
-
src/kapa2/test/boxfont.sh (copied) (copied from trunk/Ohana/src/kapa2/test/boxfont.sh )
-
src/libautocode/def/measure-ps1-v4.d (modified) (2 diffs)
-
src/libautocode/def/measure.d (modified) (2 diffs)
-
src/libautocode/def/secfilt-ps1-v4.d (modified) (1 diff)
-
src/libautocode/def/secfilt.d (modified) (1 diff)
-
src/libdvo/doc/notes.txt (modified) (1 diff)
-
src/libdvo/include/dvo.h (modified) (4 diffs)
-
src/libdvo/include/dvodb.h (modified) (2 diffs)
-
src/libdvo/src/LoadPhotcodes.c (modified) (1 diff)
-
src/libdvo/src/LoadPhotcodesFITS.c (modified) (1 diff)
-
src/libdvo/src/dbExtractAverages.c (modified) (1 diff)
-
src/libdvo/src/dbExtractMeasures.c (modified) (2 diffs)
-
src/libdvo/src/dbFields.c (modified) (6 diffs)
-
src/libdvo/src/dvo_catalog.c (modified) (4 diffs)
-
src/libdvo/src/dvo_catalog_split.c (modified) (3 diffs)
-
src/libdvo/src/dvo_convert_PS1_DEV_1.c (modified) (6 diffs)
-
src/libdvo/src/dvo_convert_PS1_DEV_2.c (modified) (6 diffs)
-
src/libdvo/src/dvo_convert_PS1_REF.c (modified) (3 diffs)
-
src/libdvo/src/dvo_convert_PS1_V1.c (modified) (7 diffs)
-
src/libdvo/src/dvo_convert_PS1_V2.c (modified) (6 diffs)
-
src/libdvo/src/dvo_convert_PS1_V3.c (modified) (6 diffs)
-
src/libdvo/src/dvo_convert_PS1_V4.c (modified) (5 diffs)
-
src/libdvo/src/dvo_convert_elixir.c (modified) (7 diffs)
-
src/libdvo/src/dvo_convert_loneos.c (modified) (6 diffs)
-
src/libdvo/src/dvo_convert_panstarrs_DEV_0.c (modified) (6 diffs)
-
src/libdvo/src/dvo_convert_panstarrs_DEV_1.c (modified) (6 diffs)
-
src/libdvo/src/dvo_photcode_ops.c (modified) (1 diff)
-
src/libdvo/src/fits_db.c (modified) (1 diff)
-
src/libfits/header/F_create_H.c (modified) (1 diff)
-
src/libfits/header/F_modify.c (modified) (1 diff)
-
src/libfits/header/F_print.c (modified) (2 diffs)
-
src/libkapa/src/IOfuncs.c (modified) (1 diff)
-
src/libohana/include/ohana.h (modified) (1 diff)
-
src/libohana/src (modified) (1 prop)
-
src/libohana/src/string.c (modified) (3 diffs)
-
src/markrock/src/ConfigInit.c (modified) (3 diffs)
-
src/markstar/src/ConfigInit.c (modified) (3 diffs)
-
src/opihi (modified) (1 prop)
-
src/opihi/cmd.astro (modified) (1 prop)
-
src/opihi/cmd.astro/cgrid.c (modified) (1 diff)
-
src/opihi/cmd.astro/cplot.c (modified) (3 diffs)
-
src/opihi/cmd.astro/czplot.c (modified) (1 diff)
-
src/opihi/cmd.data (modified) (1 prop)
-
src/opihi/cmd.data/Makefile (modified) (1 diff)
-
src/opihi/cmd.data/box.c (modified) (1 diff)
-
src/opihi/cmd.data/dbconnect.c (modified) (1 diff)
-
src/opihi/cmd.data/dbselect.c (modified) (1 diff)
-
src/opihi/cmd.data/grid.c (modified) (1 diff)
-
src/opihi/cmd.data/imspline_apply.c (copied) (copied from trunk/Ohana/src/opihi/cmd.data/imspline_apply.c )
-
src/opihi/cmd.data/imspline_construct.c (copied) (copied from trunk/Ohana/src/opihi/cmd.data/imspline_construct.c )
-
src/opihi/cmd.data/init.c (modified) (2 diffs)
-
src/opihi/cmd.data/plot.c (modified) (4 diffs)
-
src/opihi/cmd.data/read_vectors.c (modified) (9 diffs)
-
src/opihi/cmd.data/reindex.c (modified) (5 diffs)
-
src/opihi/cmd.data/spline.c (copied) (copied from trunk/Ohana/src/opihi/cmd.data/spline.c )
-
src/opihi/cmd.data/spline_apply.c (deleted)
-
src/opihi/cmd.data/spline_commands.c (copied) (copied from trunk/Ohana/src/opihi/cmd.data/spline_commands.c )
-
src/opihi/cmd.data/spline_construct.c (deleted)
-
src/opihi/cmd.data/subset.c (modified) (1 diff)
-
src/opihi/cmd.data/write_vectors.c (modified) (1 diff)
-
src/opihi/cmd.data/zplot.c (modified) (10 diffs)
-
src/opihi/doc/pantasks.controller.txt (copied) (copied from trunk/Ohana/src/opihi/doc/pantasks.controller.txt )
-
src/opihi/dvo/Makefile (modified) (1 diff)
-
src/opihi/dvo/avextract.c (modified) (2 diffs)
-
src/opihi/dvo/avmatch.c (modified) (2 diffs)
-
src/opihi/dvo/dvo_host_utils.c (modified) (4 diffs)
-
src/opihi/dvo/fitcolors.c (modified) (1 diff)
-
src/opihi/dvo/images.c (modified) (1 diff)
-
src/opihi/dvo/imbox.c (modified) (1 diff)
-
src/opihi/dvo/imdense.c (modified) (1 diff)
-
src/opihi/dvo/imstats.c (modified) (1 diff)
-
src/opihi/dvo/init.c (modified) (2 diffs)
-
src/opihi/dvo/lcurve.c (modified) (1 diff)
-
src/opihi/dvo/mextract.c (modified) (4 diffs)
-
src/opihi/dvo/mmatch.c (copied) (copied from trunk/Ohana/src/opihi/dvo/mmatch.c ) (1 diff)
-
src/opihi/dvo/procks.c (modified) (2 diffs)
-
src/opihi/dvo/remote.c (modified) (2 diffs)
-
src/opihi/dvo/showtile.c (modified) (1 diff)
-
src/opihi/dvo/simage.c (modified) (1 diff)
-
src/opihi/dvo/skycat.c (modified) (1 diff)
-
src/opihi/dvo/test (copied) (copied from trunk/Ohana/src/opihi/dvo/test )
-
src/opihi/dvo/test/mmatch.sh (copied) (copied from trunk/Ohana/src/opihi/dvo/test/mmatch.sh )
-
src/opihi/include/data.h (modified) (2 diffs)
-
src/opihi/include/display.h (modified) (1 diff)
-
src/opihi/include/dvoshell.h (modified) (1 diff)
-
src/opihi/lib.data/Makefile (modified) (1 diff)
-
src/opihi/lib.data/PlotVectors.c (modified) (4 diffs)
-
src/opihi/lib.data/SplineOps.c (copied) (copied from trunk/Ohana/src/opihi/lib.data/SplineOps.c )
-
src/opihi/lib.data/spline.c (modified) (3 diffs)
-
src/opihi/lib.shell/VectorIO.c (modified) (3 diffs)
-
src/photdbc/src/ConfigInit.c (modified) (3 diffs)
-
src/relastro/include/relastro.h (modified) (1 diff)
-
src/relastro/src/ConfigInit.c (modified) (3 diffs)
-
src/relastro/src/ImageOps.c (modified) (1 diff)
-
src/relastro/src/UpdateObjects.c (modified) (10 diffs)
-
src/relastro/src/args.c (modified) (1 diff)
-
src/relastro/src/bcatalog.c (modified) (1 diff)
-
src/relastro/src/initialize.c (modified) (2 diffs)
-
src/relastro/src/liststats.c (modified) (2 diffs)
-
src/relastro/src/relastro_objects.c (modified) (2 diffs)
-
src/relphot/include/relphot.h (modified) (1 diff)
-
src/relphot/src/ConfigInit.c (modified) (3 diffs)
-
src/relphot/src/StarOps.c (modified) (26 diffs)
-
src/relphot/src/args.c (modified) (2 diffs)
-
src/relphot/src/initialize.c (modified) (1 diff)
-
src/relphot/src/liststats.c (modified) (1 diff)
-
src/relphot/src/load_catalogs.c (modified) (2 diffs)
-
src/relphot/src/reload_catalogs.c (modified) (2 diffs)
-
src/relphot/src/relphot_objects.c (modified) (2 diffs)
-
src/relphot/src/select_images.c (modified) (1 diff)
-
src/relphot/src/setMrelFinal.c (modified) (4 diffs)
-
src/shell/src/bbc.jpegs (copied) (copied from trunk/Ohana/src/shell/src/bbc.jpegs )
-
src/tools/src/radec.c (modified) (1 diff)
-
src/uniphot/Makefile (modified) (2 diffs)
-
src/uniphot/include/setposangle.h (copied) (copied from trunk/Ohana/src/uniphot/include/setposangle.h )
-
src/uniphot/src/ImageSubsetSetPosangle.c (copied) (copied from trunk/Ohana/src/uniphot/src/ImageSubsetSetPosangle.c )
-
src/uniphot/src/initialize_setphot.c (modified) (1 diff)
-
src/uniphot/src/initialize_setphot_client.c (modified) (1 diff)
-
src/uniphot/src/initialize_setposangle.c (copied) (copied from trunk/Ohana/src/uniphot/src/initialize_setposangle.c )
-
src/uniphot/src/load_images_setposangle.c (copied) (copied from trunk/Ohana/src/uniphot/src/load_images_setposangle.c )
-
src/uniphot/src/setposangle.c (copied) (copied from trunk/Ohana/src/uniphot/src/setposangle.c )
-
src/uniphot/src/setposangle_client.c (copied) (copied from trunk/Ohana/src/uniphot/src/setposangle_client.c )
-
src/uniphot/src/update_catalog_setposangle.c (copied) (copied from trunk/Ohana/src/uniphot/src/update_catalog_setposangle.c )
-
src/uniphot/src/update_dvo_setposangle.c (copied) (copied from trunk/Ohana/src/uniphot/src/update_dvo_setposangle.c )
Legend:
- Unmodified
- Added
- Removed
-
branches/czw_branch/20120906/Ohana
- Property svn:mergeinfo changed
/branches/eam_branches/ipp-20120905/Ohana (added) merged: 34423-34428,34468,34490,34494-34495,34508,34517-34526,34529,34562-34563,34569,34572-34573,34575,34616-34619
- Property svn:mergeinfo changed
-
branches/czw_branch/20120906/Ohana/src/addstar/src/ReadStarsFITS.c
r34405 r34772 606 606 stars[i].measure.psfChisq = ps1data[i].psfChisq; 607 607 stars[i].measure.psfQF = ps1data[i].psfQF; 608 stars[i].measure.psfQFperf = ps1data[i].psfQFperf; 608 609 stars[i].measure.psfNdof = ps1data[i].psfNdof; 609 610 stars[i].measure.psfNpix = ps1data[i].psfNpix; … … 675 676 stars[i].measure.dMkron = (ps1data[i].kronFlux > 0.0) ? ps1data[i].kronFluxErr / ps1data[i].kronFlux : NAN; 676 677 678 // these fluxes are converted from counts to counts/sec in FilterStars.c 679 stars[i].measure.FluxPSF = ps1data[i].Flux; 680 stars[i].measure.dFluxPSF = ps1data[i].dFlux; 681 stars[i].measure.FluxKron = ps1data[i].kronFlux; 682 stars[i].measure.dFluxKron = ps1data[i].kronFluxErr; 683 684 stars[i].measure.Sky = ps1data[i].sky; 685 stars[i].measure.dSky = ps1data[i].dSky; 686 687 stars[i].measure.psfChisq = ps1data[i].psfChisq; 688 stars[i].measure.psfQF = ps1data[i].psfQF; 689 stars[i].measure.psfQFperf = ps1data[i].psfQFperf; 690 691 stars[i].measure.psfNdof = ps1data[i].psfNdof; 692 stars[i].measure.psfNpix = ps1data[i].psfNpix; 693 stars[i].measure.crNsigma = ps1data[i].crNsigma; 694 stars[i].measure.extNsigma = ps1data[i].extNsigma; 695 696 stars[i].measure.FWx = ToShortPixels(ps1data[i].fx); 697 stars[i].measure.FWy = ToShortPixels(ps1data[i].fy); 698 stars[i].measure.theta = ToShortDegrees(ps1data[i].df); 699 700 stars[i].measure.Mxx = ToShortPixels(ps1data[i].Mxx); 701 stars[i].measure.Mxy = ToShortPixels(ps1data[i].Mxy); 702 stars[i].measure.Myy = ToShortPixels(ps1data[i].Myy); 703 704 stars[i].measure.photFlags = ps1data[i].flags; 705 706 // this is may optionally be replaced by the internal sequence (see FilterStars.c) 707 stars[i].measure.detID = ps1data[i].detID; 708 709 // the Average fields and the following Measure fields are set in FilterStars after 710 // the image metadata is in hand: dR, dD, Mcal, dt, airmass, az, t, imageID, extID. 711 712 // averef is set in find_matches 713 714 // dbFlags is zero on ingest. 715 716 // the following fields are currently not being set anywhere: t_msec 717 } 718 *nstars = Nstars; 719 return (stars); 720 } 721 722 Stars *Convert_PS1_SV1 (FTable *table, unsigned int *nstars) { 723 724 off_t Nstars; 725 unsigned int i; 726 double ZeroPt; 727 Stars *stars; 728 CMF_PS1_SV1 *ps1data; 729 730 if (table[0].header[0].Naxis[0] == 196) { 731 stars = Convert_PS1_SV1_Alt (table, nstars); 732 return (stars); 733 } 734 735 ps1data = gfits_table_get_CMF_PS1_SV1 (table, &Nstars, NULL); 736 if (!ps1data) { 737 fprintf (stderr, "skipping inconsistent entry\n"); 738 return (NULL); 739 } 740 ZeroPt = GetZeroPoint(); 741 742 ALLOCATE (stars, Stars, Nstars); 743 for (i = 0; i < Nstars; i++) { 744 InitStar (&stars[i]); 745 stars[i].measure.Xccd = ps1data[i].X; 746 stars[i].measure.Yccd = ps1data[i].Y; 747 stars[i].measure.dXccd = ToShortPixels(ps1data[i].dX); 748 stars[i].measure.dYccd = ToShortPixels(ps1data[i].dY); 749 750 stars[i].measure.posangle = ToShortDegrees(ps1data[i].posangle); 751 stars[i].measure.pltscale = ps1data[i].pltscale; 752 753 if ((ps1data[i].M >= 0.0) || isnan(ps1data[i].M)) { 754 stars[i].measure.M = NAN; 755 } else { 756 stars[i].measure.M = ps1data[i].M + ZeroPt; 757 } 758 stars[i].measure.dM = ps1data[i].dM; 759 stars[i].measure.dMcal = ps1data[i].dMcal; 760 stars[i].measure.Map = ps1data[i].Map + ZeroPt; 761 762 stars[i].measure.Mkron = (ps1data[i].kronFlux > 0.0) ? -2.5*log10(ps1data[i].kronFlux) + ZeroPt : NAN; 763 stars[i].measure.dMkron = (ps1data[i].kronFlux > 0.0) ? ps1data[i].kronFluxErr / ps1data[i].kronFlux : NAN; 764 765 // these fluxes are converted from counts to counts/sec in FilterStars.c 766 stars[i].measure.FluxPSF = ps1data[i].Flux; 767 stars[i].measure.dFluxPSF = ps1data[i].dFlux; 768 stars[i].measure.FluxKron = ps1data[i].kronFlux; 769 stars[i].measure.dFluxKron = ps1data[i].kronFluxErr; 770 771 stars[i].measure.Sky = ps1data[i].sky; 772 stars[i].measure.dSky = ps1data[i].dSky; 773 774 stars[i].measure.psfChisq = ps1data[i].psfChisq; 775 stars[i].measure.psfQF = ps1data[i].psfQF; 776 stars[i].measure.psfQFperf = ps1data[i].psfQFperf; 777 778 stars[i].measure.psfNdof = ps1data[i].psfNdof; 779 stars[i].measure.psfNpix = ps1data[i].psfNpix; 780 stars[i].measure.crNsigma = ps1data[i].crNsigma; 781 stars[i].measure.extNsigma = ps1data[i].extNsigma; 782 783 stars[i].measure.FWx = ToShortPixels(ps1data[i].fx); 784 stars[i].measure.FWy = ToShortPixels(ps1data[i].fy); 785 stars[i].measure.theta = ToShortDegrees(ps1data[i].df); 786 787 stars[i].measure.Mxx = ToShortPixels(ps1data[i].Mxx); 788 stars[i].measure.Mxy = ToShortPixels(ps1data[i].Mxy); 789 stars[i].measure.Myy = ToShortPixels(ps1data[i].Myy); 790 791 stars[i].measure.photFlags = ps1data[i].flags; 792 793 // this is may optionally be replaced by the internal sequence (see FilterStars.c) 794 stars[i].measure.detID = ps1data[i].detID; 795 796 // the Average fields and the following Measure fields are set in FilterStars after 797 // the image metadata is in hand: dR, dD, Mcal, dt, airmass, az, t, imageID, extID, 798 // averef is set in find_matches, dbFlags is zero on ingest. 799 800 // the following fields are currently not being set anywhere: t_msec 801 } 802 *nstars = Nstars; 803 return (stars); 804 } 805 806 Stars *Convert_PS1_SV1_Alt (FTable *table, unsigned int *nstars) { 807 808 off_t Nstars; 809 unsigned int i; 810 double ZeroPt; 811 Stars *stars; 812 CMF_PS1_SV1 *ps1data; 813 814 // some test output files were produced called CMF_PS1_SV1 but with mismatch byte boundaries 815 816 ps1data = gfits_table_get_CMF_PS1_SV1_Alt (table, &Nstars, NULL); 817 if (!ps1data) { 818 fprintf (stderr, "skipping inconsistent entry\n"); 819 return (NULL); 820 } 821 ZeroPt = GetZeroPoint(); 822 823 ALLOCATE (stars, Stars, Nstars); 824 for (i = 0; i < Nstars; i++) { 825 InitStar (&stars[i]); 826 stars[i].measure.Xccd = ps1data[i].X; 827 stars[i].measure.Yccd = ps1data[i].Y; 828 stars[i].measure.dXccd = ToShortPixels(ps1data[i].dX); 829 stars[i].measure.dYccd = ToShortPixels(ps1data[i].dY); 830 831 stars[i].measure.posangle = ToShortDegrees(ps1data[i].posangle); 832 stars[i].measure.pltscale = ps1data[i].pltscale; 833 834 if ((ps1data[i].M >= 0.0) || isnan(ps1data[i].M)) { 835 stars[i].measure.M = NAN; 836 } else { 837 stars[i].measure.M = ps1data[i].M + ZeroPt; 838 } 839 stars[i].measure.dM = ps1data[i].dM; 840 stars[i].measure.dMcal = ps1data[i].dMcal; 841 stars[i].measure.Map = ps1data[i].Map + ZeroPt; 842 843 stars[i].measure.Mkron = (ps1data[i].kronFlux > 0.0) ? -2.5*log10(ps1data[i].kronFlux) + ZeroPt : NAN; 844 stars[i].measure.dMkron = (ps1data[i].kronFlux > 0.0) ? ps1data[i].kronFluxErr / ps1data[i].kronFlux : NAN; 845 677 846 // these fluxes are converted from counts to counts/sec in FilterStars.c 678 847 stars[i].measure.FluxPSF = ps1data[i].Flux; … … 705 874 706 875 // the Average fields and the following Measure fields are set in FilterStars after 707 // the image metadata is in hand: dR, dD, Mcal, dt, airmass, az, t, imageID, extID. 708 709 // averef is set in find_matches 710 711 // dbFlags is zero on ingest. 876 // the image metadata is in hand: dR, dD, Mcal, dt, airmass, az, t, imageID, extID, 877 // averef is set in find_matches, dbFlags is zero on ingest. 712 878 713 879 // the following fields are currently not being set anywhere: t_msec … … 717 883 } 718 884 719 Stars *Convert_PS1_SV 1(FTable *table, unsigned int *nstars) {885 Stars *Convert_PS1_SV2 (FTable *table, unsigned int *nstars) { 720 886 721 887 off_t Nstars; … … 723 889 double ZeroPt; 724 890 Stars *stars; 725 CMF_PS1_SV1 *ps1data; 726 727 if (table[0].header[0].Naxis[0] == 196) { 728 stars = Convert_PS1_SV1_Alt (table, nstars); 729 return (stars); 730 } 731 732 ps1data = gfits_table_get_CMF_PS1_SV1 (table, &Nstars, NULL); 891 CMF_PS1_SV2 *ps1data; 892 893 ps1data = gfits_table_get_CMF_PS1_SV2 (table, &Nstars, NULL); 733 894 if (!ps1data) { 734 895 fprintf (stderr, "skipping inconsistent entry\n"); … … 771 932 stars[i].measure.psfChisq = ps1data[i].psfChisq; 772 933 stars[i].measure.psfQF = ps1data[i].psfQF; 934 stars[i].measure.psfQFperf = ps1data[i].psfQFperf; 935 773 936 stars[i].measure.psfNdof = ps1data[i].psfNdof; 774 937 stars[i].measure.psfNpix = ps1data[i].psfNpix; … … 799 962 } 800 963 801 Stars *Convert_PS1_SV1_Alt (FTable *table, unsigned int *nstars) { 802 803 off_t Nstars; 804 unsigned int i; 805 double ZeroPt; 806 Stars *stars; 807 CMF_PS1_SV1 *ps1data; 808 809 // some test output files were produced called CMF_PS1_SV1 but with mismatch byte boundaries 810 811 ps1data = gfits_table_get_CMF_PS1_SV1_Alt (table, &Nstars, NULL); 812 if (!ps1data) { 813 fprintf (stderr, "skipping inconsistent entry\n"); 814 return (NULL); 815 } 816 ZeroPt = GetZeroPoint(); 817 818 ALLOCATE (stars, Stars, Nstars); 819 for (i = 0; i < Nstars; i++) { 820 InitStar (&stars[i]); 821 stars[i].measure.Xccd = ps1data[i].X; 822 stars[i].measure.Yccd = ps1data[i].Y; 823 stars[i].measure.dXccd = ToShortPixels(ps1data[i].dX); 824 stars[i].measure.dYccd = ToShortPixels(ps1data[i].dY); 825 826 stars[i].measure.posangle = ToShortDegrees(ps1data[i].posangle); 827 stars[i].measure.pltscale = ps1data[i].pltscale; 828 829 if ((ps1data[i].M >= 0.0) || isnan(ps1data[i].M)) { 830 stars[i].measure.M = NAN; 831 } else { 832 stars[i].measure.M = ps1data[i].M + ZeroPt; 833 } 834 stars[i].measure.dM = ps1data[i].dM; 835 stars[i].measure.dMcal = ps1data[i].dMcal; 836 stars[i].measure.Map = ps1data[i].Map + ZeroPt; 837 838 stars[i].measure.Mkron = (ps1data[i].kronFlux > 0.0) ? -2.5*log10(ps1data[i].kronFlux) + ZeroPt : NAN; 839 stars[i].measure.dMkron = (ps1data[i].kronFlux > 0.0) ? ps1data[i].kronFluxErr / ps1data[i].kronFlux : NAN; 840 841 // these fluxes are converted from counts to counts/sec in FilterStars.c 842 stars[i].measure.FluxPSF = ps1data[i].Flux; 843 stars[i].measure.dFluxPSF = ps1data[i].dFlux; 844 stars[i].measure.FluxKron = ps1data[i].kronFlux; 845 stars[i].measure.dFluxKron = ps1data[i].kronFluxErr; 846 847 stars[i].measure.Sky = ps1data[i].sky; 848 stars[i].measure.dSky = ps1data[i].dSky; 849 850 stars[i].measure.psfChisq = ps1data[i].psfChisq; 851 stars[i].measure.psfQF = ps1data[i].psfQF; 852 stars[i].measure.psfNdof = ps1data[i].psfNdof; 853 stars[i].measure.psfNpix = ps1data[i].psfNpix; 854 stars[i].measure.crNsigma = ps1data[i].crNsigma; 855 stars[i].measure.extNsigma = ps1data[i].extNsigma; 856 857 stars[i].measure.FWx = ToShortPixels(ps1data[i].fx); 858 stars[i].measure.FWy = ToShortPixels(ps1data[i].fy); 859 stars[i].measure.theta = ToShortDegrees(ps1data[i].df); 860 861 stars[i].measure.Mxx = ToShortPixels(ps1data[i].Mxx); 862 stars[i].measure.Mxy = ToShortPixels(ps1data[i].Mxy); 863 stars[i].measure.Myy = ToShortPixels(ps1data[i].Myy); 864 865 stars[i].measure.photFlags = ps1data[i].flags; 866 867 // this is may optionally be replaced by the internal sequence (see FilterStars.c) 868 stars[i].measure.detID = ps1data[i].detID; 869 870 // the Average fields and the following Measure fields are set in FilterStars after 871 // the image metadata is in hand: dR, dD, Mcal, dt, airmass, az, t, imageID, extID, 872 // averef is set in find_matches, dbFlags is zero on ingest. 873 874 // the following fields are currently not being set anywhere: t_msec 875 } 876 *nstars = Nstars; 877 return (stars); 878 } 879 880 Stars *Convert_PS1_SV2 (FTable *table, unsigned int *nstars) { 881 882 off_t Nstars; 883 unsigned int i; 884 double ZeroPt; 885 Stars *stars; 886 CMF_PS1_SV2 *ps1data; 887 888 ps1data = gfits_table_get_CMF_PS1_SV2 (table, &Nstars, NULL); 889 if (!ps1data) { 890 fprintf (stderr, "skipping inconsistent entry\n"); 891 return (NULL); 892 } 893 ZeroPt = GetZeroPoint(); 894 895 ALLOCATE (stars, Stars, Nstars); 896 for (i = 0; i < Nstars; i++) { 897 InitStar (&stars[i]); 898 stars[i].measure.Xccd = ps1data[i].X; 899 stars[i].measure.Yccd = ps1data[i].Y; 900 stars[i].measure.dXccd = ToShortPixels(ps1data[i].dX); 901 stars[i].measure.dYccd = ToShortPixels(ps1data[i].dY); 902 903 stars[i].measure.posangle = ToShortDegrees(ps1data[i].posangle); 904 stars[i].measure.pltscale = ps1data[i].pltscale; 905 906 if ((ps1data[i].M >= 0.0) || isnan(ps1data[i].M)) { 907 stars[i].measure.M = NAN; 908 } else { 909 stars[i].measure.M = ps1data[i].M + ZeroPt; 910 } 911 stars[i].measure.dM = ps1data[i].dM; 912 stars[i].measure.dMcal = ps1data[i].dMcal; 913 stars[i].measure.Map = ps1data[i].Map + ZeroPt; 914 915 stars[i].measure.Mkron = (ps1data[i].kronFlux > 0.0) ? -2.5*log10(ps1data[i].kronFlux) + ZeroPt : NAN; 916 stars[i].measure.dMkron = (ps1data[i].kronFlux > 0.0) ? ps1data[i].kronFluxErr / ps1data[i].kronFlux : NAN; 917 918 // these fluxes are converted from counts to counts/sec in FilterStars.c 919 stars[i].measure.FluxPSF = ps1data[i].Flux; 920 stars[i].measure.dFluxPSF = ps1data[i].dFlux; 921 stars[i].measure.FluxKron = ps1data[i].kronFlux; 922 stars[i].measure.dFluxKron = ps1data[i].kronFluxErr; 923 924 stars[i].measure.Sky = ps1data[i].sky; 925 stars[i].measure.dSky = ps1data[i].dSky; 926 927 stars[i].measure.psfChisq = ps1data[i].psfChisq; 928 stars[i].measure.psfQF = ps1data[i].psfQF; 929 stars[i].measure.psfNdof = ps1data[i].psfNdof; 930 stars[i].measure.psfNpix = ps1data[i].psfNpix; 931 stars[i].measure.crNsigma = ps1data[i].crNsigma; 932 stars[i].measure.extNsigma = ps1data[i].extNsigma; 933 934 stars[i].measure.FWx = ToShortPixels(ps1data[i].fx); 935 stars[i].measure.FWy = ToShortPixels(ps1data[i].fy); 936 stars[i].measure.theta = ToShortDegrees(ps1data[i].df); 937 938 stars[i].measure.Mxx = ToShortPixels(ps1data[i].Mxx); 939 stars[i].measure.Mxy = ToShortPixels(ps1data[i].Mxy); 940 stars[i].measure.Myy = ToShortPixels(ps1data[i].Myy); 941 942 stars[i].measure.photFlags = ps1data[i].flags; 943 944 // this is may optionally be replaced by the internal sequence (see FilterStars.c) 945 stars[i].measure.detID = ps1data[i].detID; 946 947 // the Average fields and the following Measure fields are set in FilterStars after 948 // the image metadata is in hand: dR, dD, Mcal, dt, airmass, az, t, imageID, extID, 949 // averef is set in find_matches, dbFlags is zero on ingest. 950 951 // the following fields are currently not being set anywhere: t_msec 952 } 953 *nstars = Nstars; 954 return (stars); 955 } 956 957 964 -
branches/czw_branch/20120906/Ohana/src/addstar/src/mkcmf.c
r34405 r34772 178 178 } 179 179 180 gauss_init (2048); 181 180 182 // load test stars from a file: 181 183 Nstars = 0; … … 254 256 gfits_modify (&header, "NASTRO", "%d", 1, 10); 255 257 256 gfits_modify (&header, "IMAGEID", "%d", 1, (int)(1000*drand48())); 257 gfits_modify (&header, "SOURCEID", "%d", 1, (int)(100*drand48())); 258 int imageID = 1000.0*drand48(); 259 int sourceID = 100.0*drand48(); 260 261 gfits_modify (&header, "IMAGEID", "%d", 1, imageID); 262 gfits_modify (&header, "SOURCEID", "%d", 1, sourceID); 258 263 259 264 PutCoords (&coords, &header); … … 396 401 // this needs to make different output 'stars' entries depending on the desired type 397 402 ALLOCATE (stars, PS1_DEV_0, Nstars); 398 gauss_init (2048);399 403 for (i = 0; i < Nstars; i++) { 400 404 stars[i].detID = i; … … 441 445 // this needs to make different output 'stars' entries depending on the desired type 442 446 ALLOCATE (stars, PS1_DEV_1, Nstars); 443 gauss_init (2048);444 447 for (i = 0; i < Nstars; i++) { 445 448 stars[i].detID = i; … … 489 492 // this needs to make different output 'stars' entries depending on the desired type 490 493 ALLOCATE (stars, CMF_PS1_V1, Nstars); 491 gauss_init (2048);492 494 for (i = 0; i < Nstars; i++) { 493 495 stars[i].detID = i; … … 537 539 // this needs to make different output 'stars' entries depending on the desired type 538 540 ALLOCATE (stars, CMF_PS1_V2, Nstars); 539 gauss_init (2048);540 541 for (i = 0; i < Nstars; i++) { 541 542 stars[i].detID = i; … … 591 592 // this needs to make different output 'stars' entries depending on the desired type 592 593 ALLOCATE (stars, CMF_PS1_V3, Nstars); 593 gauss_init (2048);594 594 for (i = 0; i < Nstars; i++) { 595 595 stars[i].detID = i; … … 649 649 // this needs to make different output 'stars' entries depending on the desired type 650 650 ALLOCATE (stars, CMF_PS1_V4, Nstars); 651 gauss_init (2048);652 651 for (i = 0; i < Nstars; i++) { 653 652 stars[i].detID = i; … … 660 659 stars[i].M = M[i]; 661 660 stars[i].Map = M[i] - 0.05; 661 stars[i].MapRaw = M[i] - 0.10; 662 663 stars[i].Flux = flux; 664 stars[i].dFlux = flux * fSN; 665 666 stars[i].apFlux = pow(10.0, -0.4*stars[i].Map); 667 stars[i].apFluxErr = stars[i].apFlux * fSN; 662 668 663 669 if (ADDNOISE) { -
branches/czw_branch/20120906/Ohana/src/addstar/src/psps_ids.c
r34260 r34772 21 21 CreatePSPSStackDetectionID(int sourceID, int imageID, int detID) 22 22 { 23 // sourceID : ID of database + table that tracked the image (< 0x 100 = 256)23 // sourceID : ID of database + table that tracked the image (< 0x7f = 127) 24 24 // imageID : external ID of the image which provided the detections (< 0x1000.0000 ~ 2.7e8) 25 25 // detID : detection sequence in image (< 0x1000.0000 ~ 2.7e8) … … 27 27 assert (detID < 0x10000000); 28 28 assert (imageID < 0x10000000); 29 assert (sourceID < 0x 100);29 assert (sourceID < 0x7f); 30 30 31 31 uint64_t detectid = ((uint64_t)sourceID << 56) + ((uint64_t)imageID << 28) + (uint64_t)detID; -
branches/czw_branch/20120906/Ohana/src/delstar/Makefile
r16040 r34772 1 default: delstar 1 default: delstar delstar_client 2 2 help: 3 3 @echo "make options: addstar (default)" … … 18 18 19 19 delstar: $(BIN)/delstar.$(ARCH) 20 install: $(DESTBIN)/delstar 20 delstar_client: $(BIN)/delstar_client.$(ARCH) 21 22 install: $(DESTBIN)/delstar $(DESTBIN)/delstar_client 21 23 22 24 DELSTAR = \ … … 27 29 $(SRC)/delete_imagename.$(ARCH).o \ 28 30 $(SRC)/delete_imagefile.$(ARCH).o \ 31 $(SRC)/delete_image_photcodes.$(ARCH).o \ 32 $(SRC)/delete_photcodes.$(ARCH).o \ 29 33 $(SRC)/delete_times.$(ARCH).o \ 30 34 $(SRC)/gimages.$(ARCH).o \ … … 33 37 $(SRC)/parse_time.$(ARCH).o \ 34 38 $(SRC)/check_permissions.$(ARCH).o \ 39 $(SRC)/Shutdown.$(ARCH).o 40 41 DELSTAR_CLIENT = \ 42 $(SRC)/delstar_client.$(ARCH).o \ 43 $(SRC)/SetSignals.$(ARCH).o \ 44 $(SRC)/ConfigInit.$(ARCH).o \ 45 $(SRC)/args.$(ARCH).o \ 46 $(SRC)/delete_photcodes.$(ARCH).o \ 35 47 $(SRC)/Shutdown.$(ARCH).o 36 48 … … 42 54 $(DELSTAR): $(INC)/delstar.h 43 55 $(BIN)/delstar.$(ARCH) : $(DELSTAR) 56 57 $(DELSTAR_CLIENT): $(INC)/delstar.h 58 $(BIN)/delstar_client.$(ARCH) : $(DELSTAR_CLIENT) -
branches/czw_branch/20120906/Ohana/src/delstar/include/delstar.h
r27435 r34772 12 12 13 13 /* global variables set in parameter file */ 14 char ImageCat[256]; 15 char ImageTemplate[256]; 16 char CatTemplate[256]; 17 char GSCFILE[256]; 18 char CATDIR[256]; 14 char ImageCat[DVO_MAX_PATH]; 15 char ImageTemplate[DVO_MAX_PATH]; 16 char CatTemplate[DVO_MAX_PATH]; 17 char GSCFILE[DVO_MAX_PATH]; 18 19 char *CATDIR; 20 19 21 char CATMODE[16]; /* raw, mef, split, mysql */ 20 22 char CATFORMAT[16]; /* internal, elixir, loneos, panstarrs */ 23 24 char *IMAGENAME; 25 21 26 double NSIGMA; 22 27 double ALPHA; … … 24 29 int ORPHAN; 25 30 int MISSED; 26 char SKY_TABLE[ 256];31 char SKY_TABLE[DVO_MAX_PATH]; 27 32 int SKY_DEPTH; /** XXX EAM : depth of catalog tables, fix usage */ 33 34 int PARALLEL; 35 int PARALLEL_MANUAL; 36 int PARALLEL_SERIAL; 37 38 int HOST_ID; 39 char *HOSTDIR; 28 40 29 41 time_t START; … … 31 43 PhotCode *PHOTCODE; 32 44 45 char *PHOTCODE_LIST; 46 33 47 int MODE; 34 enum {MODE_ IMAGENAME, MODE_IMAGEFILE, MODE_TIME, MODE_ORPHAN, MODE_MISSED};48 enum {MODE_NONE, MODE_IMAGENAME, MODE_IMAGEFILE, MODE_TIME, MODE_ORPHAN, MODE_MISSED, MODE_PHOTCODES}; 35 49 36 50 char DateKeyword[64], DateMode[64], UTKeyword[64], MJDKeyword[64], JDKeyword[64]; 51 52 SkyRegion UserPatch; 37 53 38 54 /*** delstar prototypes ***/ … … 46 62 int Shutdown PROTO((char *format, ...)) OHANA_FORMAT(printf, 1, 2); 47 63 void TrapSignal PROTO((int sig)); 48 int args PROTO((int *argc, char **argv));64 int args PROTO((int argc, char **argv)); 49 65 void check_permissions PROTO((char *basefile)); 50 void delete_imagefile PROTO((FITS_DB *db , char *filename));51 void delete_imagename PROTO((FITS_DB *db , char *name));66 void delete_imagefile PROTO((FITS_DB *db)); 67 void delete_imagename PROTO((FITS_DB *db)); 52 68 void delete_times PROTO((FITS_DB *db)); 53 69 int edge_check PROTO((double *x1, double *y1, double *x2, double *y2)); … … 72 88 73 89 void set_db (FITS_DB *in); 90 91 int args_client (int argc, char **argv); 92 93 void SortAveMeasMatch (off_t *MEAS, off_t *AVE, off_t N); 94 95 int delete_photcodes (int hostID, char *hostpath); 96 int delete_photcodes_parallel (SkyList *sky); 97 int delete_photcodes_catalog (Catalog *catalog, PhotCode **photcodes, int Nphotcodes); 98 int delete_image_photcodes (FITS_DB *db); -
branches/czw_branch/20120906/Ohana/src/delstar/src/ConfigInit.c
r25757 r34772 5 5 char *config, *file; 6 6 char CatdirPhotcodeFile[256]; 7 char MasterPhotcodeFile[256];8 7 9 8 /*** load configuration info ***/ … … 20 19 ScanConfig (config, "ALPHA", "%lf", 0, &ALPHA); 21 20 ScanConfig (config, "GSCFILE", "%s", 0, GSCFILE); 22 ScanConfig (config, "CATDIR", "%s", 0, CATDIR);23 21 ScanConfig (config, "CATMODE", "%s", 0, CATMODE); 24 22 ScanConfig (config, "CATFORMAT", "%s", 0, CATFORMAT); 25 ScanConfig (config, "PHOTCODE_FILE", "%s", 0, MasterPhotcodeFile);26 23 27 sprintf (ImageCat, "%s/Images.dat", CATDIR); 24 // force CATDIR to be absolute (so parallel mode will work) 25 char *tmpcatdir = NULL; 26 ALLOCATE (tmpcatdir, char, DVO_MAX_PATH); 27 ScanConfig (config, "CATDIR", "%s", 0, tmpcatdir); 28 CATDIR = abspath (tmpcatdir, DVO_MAX_PATH); 29 free (tmpcatdir); 30 31 snprintf (ImageCat, DVO_MAX_PATH, "%s/Images.dat", CATDIR); 28 32 29 33 ScanConfig (config, "DATE-KEYWORD", "%s", 0, DateKeyword); … … 45 49 /* XXX this does not yet write out the master photcode table */ 46 50 sprintf (CatdirPhotcodeFile, "%s/Photcodes.dat", CATDIR); 47 if (!LoadPhotcodes (CatdirPhotcodeFile, MasterPhotcodeFile, TRUE)) {48 fprintf (stderr, "error loading photcode table %s or master file %s\n", CatdirPhotcodeFile, MasterPhotcodeFile);51 if (!LoadPhotcodes (CatdirPhotcodeFile, NULL, FALSE)) { 52 fprintf (stderr, "error loading photcode table %s\n", CatdirPhotcodeFile); 49 53 exit (1); 50 54 } -
branches/czw_branch/20120906/Ohana/src/delstar/src/args.c
r34088 r34772 4 4 5 5 fprintf (stderr, "USAGE:\n"); 6 fprintf (stderr, " delstar (filename)\n");7 fprintf (stderr, " delstar -name ( filename)\n");6 fprintf (stderr, " delstar -file (filename)\n"); 7 fprintf (stderr, " delstar -name (imagename)\n"); 8 8 fprintf (stderr, " delstar -time (start) (stop/range)\n"); 9 9 fprintf (stderr, " delstar -orphan (region)\n"); … … 22 22 } 23 23 24 int args (int *argc, char **argv) { 24 void delstar_client_usage () { 25 fprintf (stderr, "USAGE: delstar_client [options]\n"); 26 exit (2); 27 } 28 29 int args (int argc, char **argv) { 25 30 26 31 int N; … … 28 33 29 34 /* check for help request */ 30 if (get_argument ( *argc, argv, "-help") ||31 get_argument ( *argc, argv, "-h")) {35 if (get_argument (argc, argv, "-help") || 36 get_argument (argc, argv, "-h")) { 32 37 help (); 33 38 } 34 39 35 40 VERBOSE = FALSE; 36 if ((N = get_argument ( *argc, argv, "-v"))) {41 if ((N = get_argument (argc, argv, "-v"))) { 37 42 VERBOSE = TRUE; 38 remove_argument (N, argc, argv); 39 } 40 41 MODE = MODE_IMAGEFILE; 42 if ((N = get_argument (*argc, argv, "-name"))) { 43 if (MODE != MODE_IMAGEFILE) usage(); 43 remove_argument (N, &argc, argv); 44 } 45 46 // region of interest 47 UserPatch.Rmin = 0; 48 UserPatch.Rmax = 360; 49 UserPatch.Dmin = -90; 50 UserPatch.Dmax = +90; 51 if ((N = get_argument (argc, argv, "-region"))) { 52 remove_argument (N, &argc, argv); 53 UserPatch.Rmin = atof (argv[N]); 54 remove_argument (N, &argc, argv); 55 UserPatch.Rmax = atof (argv[N]); 56 remove_argument (N, &argc, argv); 57 UserPatch.Dmin = atof (argv[N]); 58 remove_argument (N, &argc, argv); 59 UserPatch.Dmax = atof (argv[N]); 60 remove_argument (N, &argc, argv); 61 } 62 63 // XXX for the moment, make this selection manual. it needs to be automatic 64 // based on the state of the SkyTable 65 PARALLEL = FALSE; 66 if ((N = get_argument (argc, argv, "-parallel"))) { 67 PARALLEL = TRUE; 68 remove_argument (N, &argc, argv); 69 } 70 // this is a test mode : rather than launching the remote jobs and waiting for completion, 71 // delstar will simply list the remote command and wait for the user to signal completion 72 PARALLEL_MANUAL = FALSE; 73 if ((N = get_argument (argc, argv, "-parallel-manual"))) { 74 PARALLEL = TRUE; // -parallel-manual implies -parallel 75 PARALLEL_MANUAL = TRUE; 76 remove_argument (N, &argc, argv); 77 } 78 // this is a test mode : rather than launching the delstar_client jobs remotely, they are 79 // run in serial via 'system' 80 PARALLEL_SERIAL = FALSE; 81 if ((N = get_argument (argc, argv, "-parallel-serial"))) { 82 if (PARALLEL_MANUAL) { 83 fprintf (stderr, "ERROR: cannot mix -parallel-manual and -parallel-serial\n"); 84 exit (1); 85 } 86 PARALLEL = TRUE; // -parallel-serial implies -parallel 87 PARALLEL_SERIAL = TRUE; 88 remove_argument (N, &argc, argv); 89 } 90 91 IMAGENAME = NULL; 92 MODE = MODE_NONE; 93 if ((N = get_argument (argc, argv, "-name"))) { 94 if (MODE != MODE_NONE) usage(); 44 95 MODE = MODE_IMAGENAME; 45 remove_argument (N, argc, argv); 46 } 47 if ((N = get_argument (*argc, argv, "-orphan"))) { 48 if (MODE != MODE_IMAGEFILE) usage(); 96 remove_argument (N, &argc, argv); 97 IMAGENAME = strcreate (argv[N]); 98 remove_argument (N, &argc, argv); 99 } 100 if ((N = get_argument (argc, argv, "-file"))) { 101 if (MODE != MODE_NONE) usage(); 102 MODE = MODE_IMAGENAME; 103 remove_argument (N, &argc, argv); 104 IMAGENAME = strcreate (argv[N]); 105 remove_argument (N, &argc, argv); 106 } 107 if ((N = get_argument (argc, argv, "-orphan"))) { 108 if (MODE != MODE_NONE) usage(); 49 109 MODE = MODE_ORPHAN; 50 remove_argument (N, argc, argv);51 } 52 if ((N = get_argument ( *argc, argv, "-missed"))) {53 if (MODE != MODE_ IMAGEFILE) usage();110 remove_argument (N, &argc, argv); 111 } 112 if ((N = get_argument (argc, argv, "-missed"))) { 113 if (MODE != MODE_NONE) usage(); 54 114 MODE = MODE_MISSED; 55 remove_argument (N, argc, argv); 56 } 57 if ((N = get_argument (*argc, argv, "-time"))) { 58 if (MODE != MODE_IMAGEFILE) usage(); 115 remove_argument (N, &argc, argv); 116 } 117 if ((N = get_argument (argc, argv, "-photcodes"))) { 118 if (MODE != MODE_NONE) usage(); 119 MODE = MODE_PHOTCODES; 120 remove_argument (N, &argc, argv); 121 PHOTCODE_LIST = strcreate(argv[N]); 122 remove_argument (N, &argc, argv); 123 } 124 if ((N = get_argument (argc, argv, "-time"))) { 125 if (MODE != MODE_NONE) usage(); 59 126 MODE = MODE_TIME; 60 remove_argument (N, argc, argv);127 remove_argument (N, &argc, argv); 61 128 62 129 if (!ohana_str_to_time (argv[N], &START)) usage (); 63 remove_argument (N, argc, argv);130 remove_argument (N, &argc, argv); 64 131 65 132 /* interpret second value */ … … 71 138 END = START + trange; 72 139 } 73 remove_argument (N, argc, argv);140 remove_argument (N, &argc, argv); 74 141 goto goodtime; 75 142 } … … 81 148 END = tmp; 82 149 } 83 remove_argument (N, argc, argv);150 remove_argument (N, &argc, argv); 84 151 goto goodtime; 85 152 } 86 153 usage (); 87 154 } 155 88 156 goodtime: 89 157 90 /* restrict to a single photcode (not compatible with -image) */158 /* restrict to a single photcode (not compatible with -image) 91 159 PHOTCODE = NULL; 92 if ((N = get_argument ( *argc, argv, "-photcode"))) {93 remove_argument (N, argc, argv);160 if ((N = get_argument (argc, argv, "-photcode"))) { 161 remove_argument (N, &argc, argv); 94 162 PHOTCODE = GetPhotcodebyName (argv[N]); 95 remove_argument (N, argc, argv); 96 } 97 98 if ((MODE == MODE_TIME) && (*argc != 1)) usage (); 99 if ((MODE != MODE_TIME) && (*argc != 2)) usage (); 163 remove_argument (N, &argc, argv); 164 }*/ 165 166 if (argc != 1) usage (); 100 167 return (TRUE); 101 168 } 169 170 int args_client (int argc, char **argv) { 171 172 int N; 173 174 // by definition, the client is not parallel 175 PARALLEL = FALSE; 176 PARALLEL_MANUAL = FALSE; 177 PARALLEL_SERIAL = FALSE; 178 179 HOST_ID = 0; 180 if ((N = get_argument (argc, argv, "-hostID"))) { 181 remove_argument (N, &argc, argv); 182 HOST_ID = atoi (argv[N]); 183 remove_argument (N, &argc, argv); 184 } 185 if (!HOST_ID) delstar_client_usage(); 186 187 HOSTDIR = NULL; 188 if ((N = get_argument (argc, argv, "-hostdir"))) { 189 remove_argument (N, &argc, argv); 190 HOSTDIR = strcreate (argv[N]); 191 remove_argument (N, &argc, argv); 192 } 193 if (!HOSTDIR) delstar_client_usage(); 194 195 /* check for help request */ 196 if (get_argument (argc, argv, "-help") || 197 get_argument (argc, argv, "-h")) { 198 help (); 199 } 200 201 VERBOSE = FALSE; 202 if ((N = get_argument (argc, argv, "-v"))) { 203 VERBOSE = TRUE; 204 remove_argument (N, &argc, argv); 205 } 206 207 /* specify portion of the sky */ 208 UserPatch.Rmin = 0; 209 UserPatch.Rmax = 360; 210 UserPatch.Dmin = -90; 211 UserPatch.Dmax = +90; 212 if ((N = get_argument (argc, argv, "-region"))) { 213 remove_argument (N, &argc, argv); 214 UserPatch.Rmin = atof (argv[N]); 215 remove_argument (N, &argc, argv); 216 UserPatch.Rmax = atof (argv[N]); 217 remove_argument (N, &argc, argv); 218 UserPatch.Dmin = atof (argv[N]); 219 remove_argument (N, &argc, argv); 220 UserPatch.Dmax = atof (argv[N]); 221 remove_argument (N, &argc, argv); 222 } 223 224 MODE = MODE_NONE; 225 if ((N = get_argument (argc, argv, "-photcodes"))) { 226 if (MODE != MODE_NONE) delstar_client_usage(); 227 MODE = MODE_PHOTCODES; 228 remove_argument (N, &argc, argv); 229 PHOTCODE_LIST = strcreate(argv[N]); 230 remove_argument (N, &argc, argv); 231 } 232 233 if (MODE == MODE_NONE) delstar_client_usage (); 234 return (TRUE); 235 } -
branches/czw_branch/20120906/Ohana/src/delstar/src/delete_imagefile.c
r27435 r34772 1 1 # include "delstar.h" 2 2 3 void delete_imagefile (FITS_DB *db , char *filename) {3 void delete_imagefile (FITS_DB *db) { 4 4 5 5 off_t i, Nimlist; … … 16 16 17 17 /* load information about file - time/photcode */ 18 image = gimages ( filename);18 image = gimages (IMAGENAME); 19 19 20 20 /* need to define method to get the mosaic (look up from table) */ … … 54 54 // XXX EAM : load image data above, find mosaic? 55 55 imlist = find_images_data (db, image, &Nimlist); 56 if (!Nimlist) Shutdown ("image %s not found in db", filename);56 if (!Nimlist) Shutdown ("image %s not found in db", IMAGENAME); 57 57 58 58 gfits_vtable_from_ftable (&db[0].ftable, &db[0].vtable, imlist, Nimlist); -
branches/czw_branch/20120906/Ohana/src/delstar/src/delete_imagename.c
r29001 r34772 1 1 # include "delstar.h" 2 2 3 void delete_imagename (FITS_DB *db , char *name) {3 void delete_imagename (FITS_DB *db) { 4 4 5 5 off_t i, j, k; … … 25 25 26 26 /* find image in db by name */ 27 imlist = find_images_name (db, name, &Nimlist);28 if (!Nimlist) Shutdown ("image %s not found in db", name);27 imlist = find_images_name (db, IMAGENAME, &Nimlist); 28 if (!Nimlist) Shutdown ("image %s not found in db", IMAGENAME); 29 29 30 30 for (k = 0; k < Nimlist; k++) { -
branches/czw_branch/20120906/Ohana/src/delstar/src/delstar.c
r6428 r34772 8 8 SetSignals (); 9 9 ConfigInit (&argc, argv); 10 args ( &argc, argv);10 args (argc, argv); 11 11 12 12 set_db (&db); … … 20 20 switch (MODE) { 21 21 case MODE_IMAGEFILE: 22 delete_imagefile (&db , argv[1]);22 delete_imagefile (&db); 23 23 break; 24 24 case MODE_IMAGENAME: 25 delete_imagename (&db , argv[1]);25 delete_imagename (&db); 26 26 break; 27 27 case MODE_TIME: 28 28 delete_times (&db); 29 29 break; 30 case MODE_PHOTCODES: { 31 if (!delete_image_photcodes (&db)) exit (1); 32 33 if (!delete_photcodes (0, NULL)) { 34 fprintf (stderr, "failure deleting measurements\n"); 35 exit (1); 36 } 37 exit (0); 38 } 30 39 case MODE_ORPHAN: 31 40 fprintf (stderr, "delete orphans not available\n"); -
branches/czw_branch/20120906/Ohana/src/dvomerge/src/dvomergeHistory.c
r34405 r34772 132 132 int stat_result = stat (filename, &outstats); 133 133 if (stat_result) { 134 if (errno == ENOENT) return NULL; 134 if (errno == ENOENT) { 135 dmhObject *history = NULL; 136 ALLOCATE (history, dmhObject, 1); 137 history->Nmerge = 0; 138 139 // ALLOCATE full list 140 ALLOCATE (history->size, off_t, history->Nmerge); 141 ALLOCATE (history->time, time_t, history->Nmerge); 142 ALLOCATE (history->date, char *, history->Nmerge); 143 return history; 144 } 135 145 fprintf (stderr, "cannot read stats on output file %s\n", filename); 136 146 perror ("stats error message:"); -
branches/czw_branch/20120906/Ohana/src/getstar/src/ConfigInit.c
r25757 r34772 5 5 char *config, *file; 6 6 char CatdirPhotcodeFile[256]; 7 char MasterPhotcodeFile[256];8 7 9 8 /*** load configuration info ***/ … … 21 20 ScanConfig (config, "CATMODE", "%s", 0, CATMODE); 22 21 ScanConfig (config, "CATFORMAT", "%s", 0, CATFORMAT); 23 ScanConfig (config, "PHOTCODE_FILE", "%s", 0, MasterPhotcodeFile);24 22 if (!ScanConfig (config, "SKY_DEPTH", "%d", 0, &SKY_DEPTH)) { 25 23 SKY_DEPTH = 2; … … 34 32 /* XXX this does not yet write out the master photcode table */ 35 33 sprintf (CatdirPhotcodeFile, "%s/Photcodes.dat", CATDIR); 36 if (!LoadPhotcodes (CatdirPhotcodeFile, MasterPhotcodeFile, TRUE)) {37 fprintf (stderr, "error loading photcode table %s or master file %s\n", CatdirPhotcodeFile, MasterPhotcodeFile);34 if (!LoadPhotcodes (CatdirPhotcodeFile, NULL, FALSE)) { 35 fprintf (stderr, "error loading photcode table %s\n", CatdirPhotcodeFile); 38 36 exit (1); 39 37 } -
branches/czw_branch/20120906/Ohana/src/getstar/src/MatchImages.c
r28241 r34772 43 43 tcoords.pc1_1 = tcoords.pc2_2 = 1.0; 44 44 tcoords.pc1_2 = tcoords.pc2_1 = 0.0; 45 tcoords.Npolyterms = 1; 45 46 strcpy (tcoords.ctype, "RA---TAN"); 46 47 } -
branches/czw_branch/20120906/Ohana/src/getstar/src/args.c
r20985 r34772 40 40 41 41 MagLimitUse = FALSE; 42 MagLimitValue = 100; 42 43 if ((N = get_argument (argc, argv, "-maglim"))) { 43 44 MagLimitUse = TRUE; … … 60 61 61 62 MinMagUse = FALSE; 63 MinMagValue = -100; 62 64 if ((N = get_argument (argc, argv, "-minmag"))) { 63 65 MinMagUse = TRUE; -
branches/czw_branch/20120906/Ohana/src/getstar/src/select_by_region.c
r34088 r34772 82 82 } 83 83 if (isnan(mag)) continue; 84 if (mag < MinMagValue) continue; 85 if (mag > MagLimitValue) continue; 84 86 85 87 bin = (mag - MagMin) / dMag; … … 118 120 if (D > region[0].Dmax) continue; 119 121 120 if (MagLimitUse) { 122 // If either magnitude limit was specfied it a apply both. 123 // If one of the limits is not used it is initialized to an unphysical value so test will succeed 124 if (MagLimitUse || MinMagUse) { 121 125 mag = NAN; 122 126 if (needMeas) { … … 132 136 } 133 137 if (isnan(mag) || (mag > MagLimitValue)) continue; 138 if (isnan(mag) || (mag < MinMagValue)) continue; 134 139 } 135 140 -
branches/czw_branch/20120906/Ohana/src/kapa2/src/SetColormap.c
r26891 r34772 24 24 graphic = GetGraphic(); 25 25 26 int NANValue = graphic[0].Npixels - 1; 27 int MaxValue = graphic[0].Npixels - 1; 28 26 29 // the "fullcolor" colormap is uniquely defined for each image; 27 30 // defer to the 'SetColorScale' step … … 35 38 { 36 39 // XXX set pure green for now 37 graphic[0].cmap[ graphic[0].Npixels-1].red = 0;38 graphic[0].cmap[ graphic[0].Npixels-1].green = 0xffff;39 graphic[0].cmap[ graphic[0].Npixels-1].blue = 0;40 graphic[0].cmap[NANValue].red = 0; 41 graphic[0].cmap[NANValue].green = 0xffff; 42 graphic[0].cmap[NANValue].blue = 0; 40 43 } 41 44 … … 73 76 74 77 // red,green,blue are values in range 0x0000 to 0xffff 75 scale = 0xffff / ( graphic[0].Npixels - 2);78 scale = 0xffff / (float) (MaxValue - 1); 76 79 77 80 /* greyscale */ 78 81 if ((!strcasecmp (name, "grayscale")) || (!strcasecmp (name, "greyscale"))) { 79 for (i = 0; i < graphic[0].Npixels - 1; i++) {82 for (i = 0; i < MaxValue; i++) { 80 83 SETVALUE (graphic[0].cmap[i].red, 0xffff - i*scale, 0, 0xffff); 81 84 SETVALUE (graphic[0].cmap[i].green, 0xffff - i*scale, 0, 0xffff); … … 87 90 /* -grayscale */ 88 91 if ((!strcasecmp (name, "-grayscale")) || (!strcasecmp (name, "-greyscale"))) { 89 for (i = 0; i < graphic[0].Npixels - 1; i++) {92 for (i = 0; i < MaxValue; i++) { 90 93 SETVALUE (graphic[0].cmap[i].red, i*scale, 0, 0xffff); 91 94 SETVALUE (graphic[0].cmap[i].green, i*scale, 0, 0xffff); … … 97 100 /* heat */ 98 101 if (!strcasecmp (name, "Heat")) { 99 greenRef = 0.25* graphic[0].Npixels*scale*2.0;100 blueRef = 0.50* graphic[0].Npixels*scale*2.0;101 for (i = 0; i < (int)(0.25* graphic[0].Npixels); i++) {102 greenRef = 0.25*MaxValue*scale*2.0; 103 blueRef = 0.50*MaxValue*scale*2.0; 104 for (i = 0; i < (int)(0.25*MaxValue); i++) { 102 105 SETVALUE (graphic[0].cmap[i].red, 2*i*scale, 0, 0xffff); 103 106 graphic[0].cmap[i].green = 0; … … 105 108 graphic[0].cmap[i].flags = DoRed | DoGreen | DoBlue; 106 109 } 107 for (i = 0.25* graphic[0].Npixels; i < 0.50*graphic[0].Npixels; i++) {110 for (i = 0.25*MaxValue; i < 0.50*MaxValue; i++) { 108 111 SETVALUE (graphic[0].cmap[i].red, 2*i*scale, 0, 0xffff); 109 112 SETVALUE (graphic[0].cmap[i].green, 2*i*scale - greenRef, 0, 0xffff); … … 111 114 graphic[0].cmap[i].flags = DoRed | DoGreen | DoBlue; 112 115 } 113 for (i = (int)(0.50* graphic[0].Npixels); i < (int)(0.75*graphic[0].Npixels); i++) {116 for (i = (int)(0.50*MaxValue); i < (int)(0.75*MaxValue); i++) { 114 117 graphic[0].cmap[i].red = 0xffff; 115 118 SETVALUE (graphic[0].cmap[i].green, 2*i*scale - greenRef, 0, 0xffff); … … 117 120 graphic[0].cmap[i].flags = DoRed | DoGreen | DoBlue; 118 121 } 119 for (i = (int)(0.75* graphic[0].Npixels); i < graphic[0].Npixels - 1; i++) {122 for (i = (int)(0.75*MaxValue); i < MaxValue; i++) { 120 123 graphic[0].cmap[i].red = 0xffff; 121 124 graphic[0].cmap[i].green = 0xffff; … … 127 130 /* rainbow */ 128 131 if (!strcasecmp (name, "Rainbow")) { 129 redRef = 0.25* graphic[0].Npixels*scale*4.0;130 greenRef = 0.50* graphic[0].Npixels*scale*4.0;131 blueRef = 0.50* graphic[0].Npixels*scale*4.0;132 for (i = 0; i < (int)(0.25* graphic[0].Npixels); i++) {132 redRef = 0.25*MaxValue*scale*4.0; 133 greenRef = 0.50*MaxValue*scale*4.0; 134 blueRef = 0.50*MaxValue*scale*4.0; 135 for (i = 0; i < (int)(0.25*MaxValue); i++) { 133 136 graphic[0].cmap[i].red = 0; 134 137 graphic[0].cmap[i].green = 0; … … 136 139 graphic[0].cmap[i].flags = DoRed | DoGreen | DoBlue; 137 140 } 138 for (i = (int)(0.25* graphic[0].Npixels); i < (int)(0.50*graphic[0].Npixels); i++) {141 for (i = (int)(0.25*MaxValue); i < (int)(0.50*MaxValue); i++) { 139 142 SETVALUE (graphic[0].cmap[i].red, 4*i*scale - redRef, 0, 0xffff); 140 143 graphic[0].cmap[i].green = 0; … … 142 145 graphic[0].cmap[i].flags = DoRed | DoGreen | DoBlue; 143 146 } 144 for (i = (int)(0.50* graphic[0].Npixels); i < (int)(0.75*graphic[0].Npixels); i++) {147 for (i = (int)(0.50*MaxValue); i < (int)(0.75*MaxValue); i++) { 145 148 graphic[0].cmap[i].red = 0xffff; 146 149 SETVALUE (graphic[0].cmap[i].green, 4*i*scale - greenRef, 0, 0xffff); … … 148 151 graphic[0].cmap[i].flags = DoRed | DoGreen | DoBlue; 149 152 } 150 blueRef = 0.75*graphic[0].Npixels*scale*4.0; 151 for (i = (int)(0.75*graphic[0].Npixels); i < graphic[0].Npixels - 1; i++) { 153 // blue = blueScale * i + blueRef 154 // blue = (0xffff - 0.0)*(i - MinValue) / (MaxValue - MinValue) + 0.0 155 // blue = i * 0xffff / (MaxValue - MinValue) - 0xffff * MinValue / (MaxValue - MinValue) 156 float iMin = (int)(0.75*MaxValue); 157 float iMax = MaxValue - 1; 158 float dB = 0xffff / (iMax - iMin); 159 float oB = -0xffff * iMin / (iMax - iMin); 160 for (i = iMin; i < MaxValue; i++) { 152 161 graphic[0].cmap[i].red = 0xffff; 153 162 graphic[0].cmap[i].green = 0xffff; 154 SETVALUE (graphic[0].cmap[i].blue, 4*i*scale - blueRef, 0, 0xffff);163 SETVALUE (graphic[0].cmap[i].blue, i*dB + oB, 0, 0xffff); 155 164 graphic[0].cmap[i].flags = DoRed | DoGreen | DoBlue; 156 165 } -
branches/czw_branch/20120906/Ohana/src/libautocode/def/measure-ps1-v4.d
r34405 r34772 2 2 EXTNAME DVO_MEASURE_PS1_V4 3 3 TYPE BINTABLE 4 SIZE 1 764 SIZE 184 5 5 DESCRIPTION DVO Detection Measurement Table 6 6 … … 29 29 FIELD Xccd, X_CCD, float, X coord on chip, pixels 30 30 FIELD Yccd, Y_CCD, float, Y coord on chip, pixels 31 32 FIELD Xoff, X_OFF, float, X correction in chip coords, pixels 33 FIELD Yoff, Y_OFF, float, Y correction in chip coords, pixels 31 34 32 35 # could these be packed into fewer bits? -
branches/czw_branch/20120906/Ohana/src/libautocode/def/measure.d
r34405 r34772 2 2 EXTNAME DVO_MEASURE 3 3 TYPE BINTABLE 4 SIZE 1 764 SIZE 184 5 5 DESCRIPTION DVO Detection Measurement Table 6 6 … … 29 29 FIELD Xccd, X_CCD, float, X coord on chip, pixels 30 30 FIELD Yccd, Y_CCD, float, Y coord on chip, pixels 31 32 FIELD Xoff, X_OFF, float, X correction in chip coords, pixels 33 FIELD Yoff, Y_OFF, float, Y correction in chip coords, pixels 31 34 32 35 # could these be packed into fewer bits? -
branches/czw_branch/20120906/Ohana/src/libautocode/def/secfilt-ps1-v4.d
r34260 r34772 6 6 7 7 # elements of data structure / FITS table 8 FIELD M, MAG, float, average mag in this band, mags 9 FIELD Map, MAG_AP, float, ave aperture mag in this band, mags 10 FIELD Mkron, MAG_KRON, float, ave kron mag in this band, mags 11 FIELD dMkron, MAG_KRON_ERR, float, formal error on average kron mag, mags 12 FIELD dM, MAG_ERR, float, formal error on average mag, mags 13 FIELD Xm, MAG_CHI, float, chisq on average mag, [100*log(value)] 14 FIELD FluxPSF, FLUX_PSF, float, mean flux psf fit (PS1: stack) 15 FIELD dFluxPSF, FLUX_PSF_ERR, float, mean flux psf error 16 FIELD FluxKron, FLUX_KRON, float, mean flux kron ap (PS1: stack) 17 FIELD dFluxKron, FLUX_KRON_ERR, float, mean flux kron err 18 FIELD flags, FLAGS, uint32_t, photometry flags 19 FIELD Ncode, NCODE, short, number of detections in band 20 FIELD Nused, NUSED, short, number of detections used in average 21 FIELD M_20, MAG_20, short, lower 20percent mag, millimags 22 FIELD M_80, MAG_80, short, upper 20percent mag, millimags 23 FIELD ubercalDist, UBERCAL_DIST, short, number of images from an ubercal-image 24 FIELD Mstdev, MAG_STDEV, short, standard deviation of measurements, millimags 25 FIELD stackID, STACK_ID, uint32_t, image ID of stack used for fluxes (if any) 26 FIELD dummy, DUMMY, uint32_t, padding 8 FIELD M, MAG, float, average mag in this band, mags 9 FIELD Map, MAG_AP, float, ave aperture mag in this band, mags 10 FIELD Mkron, MAG_KRON, float, ave kron mag in this band, mags 11 FIELD dMkron, MAG_KRON_ERR, float, formal error on average kron mag, mags 12 FIELD dM, MAG_ERR, float, formal error on average mag, mags 13 FIELD Xm, MAG_CHI, float, chisq on average mag, [100*log(value)] 14 FIELD FluxPSF, FLUX_PSF, float, mean flux psf fit (PS1: stack) 15 FIELD dFluxPSF, FLUX_PSF_ERR, float, mean flux psf error 16 FIELD FluxKron, FLUX_KRON, float, mean flux kron ap (PS1: stack) 17 FIELD dFluxKron, FLUX_KRON_ERR, float, mean flux kron err 18 FIELD flags, FLAGS, uint32_t, photometry flags 19 FIELD Ncode, NCODE, short, number of detections in band 20 FIELD Nused, NUSED, short, number of detections used in average 21 FIELD M_20, MAG_20, short, lower 20percent mag, millimags 22 FIELD M_80, MAG_80, short, upper 20percent mag, millimags 23 FIELD ubercalDist, UBERCAL_DIST, short, number of images from an ubercal-image 24 FIELD Mstdev, MAG_STDEV, short, standard deviation of measurements, millimags 25 FIELD stackDetectID, STACK_DETECT_ID, uint64_t, detection ID on stack used for fluxes (if any) -
branches/czw_branch/20120906/Ohana/src/libautocode/def/secfilt.d
r34260 r34772 6 6 7 7 # elements of data structure / FITS table 8 FIELD M, MAG, float, average mag in this band, mags 9 FIELD Map, MAG, float, average mag in this band, mags 10 FIELD Mkron, MAG_KRON, float, ave kron mag in this band, mags 11 FIELD dMkron, MAG_KRON_ERR, float, formal error on average kron mag, mags 12 FIELD dM, MAG_ERR, float, formal error on average mag, mags 13 FIELD Xm, MAG_CHI, float, chisq on average mag, [100*log(value)] 14 FIELD FluxPSF, FLUX_PSF, float, mean flux psf fit (PS1: stack) 15 FIELD dFluxPSF, FLUX_PSF_ERR, float, mean flux psf error 16 FIELD FluxKron, FLUX_KRON, float, mean flux kron ap (PS1: stack) 17 FIELD dFluxKron, FLUX_KRON_ERR, float, mean flux kron err 18 FIELD flags, FLAGS, uint32_t, photometry flags 19 FIELD Ncode, NCODE, short, number of detections in band 20 FIELD Nused, NUSED, short, number of detections used in average 21 FIELD M_20, MAG_20, short, lower 20percent mag, millimags 22 FIELD M_80, MAG_80, short, upper 20percent mag, millimags 23 FIELD ubercalDist, UBERCAL_DIST, short, number of images from an ubercal-image 24 FIELD Mstdev, MAG_STDEV, short, standard deviation of measurements, millimags 25 FIELD stackID, STACK_ID, uint32_t, image ID of stack used for fluxes (if any) 26 FIELD dummy, DUMMY, uint32_t, padding 8 FIELD M, MAG, float, average mag in this band, mags 9 FIELD Map, MAG, float, average mag in this band, mags 10 FIELD Mkron, MAG_KRON, float, ave kron mag in this band, mags 11 FIELD dMkron, MAG_KRON_ERR, float, formal error on average kron mag, mags 12 FIELD dM, MAG_ERR, float, formal error on average mag, mags 13 FIELD Xm, MAG_CHI, float, chisq on average mag, [100*log(value)] 14 FIELD FluxPSF, FLUX_PSF, float, mean flux psf fit (PS1: stack) 15 FIELD dFluxPSF, FLUX_PSF_ERR, float, mean flux psf error 16 FIELD FluxKron, FLUX_KRON, float, mean flux kron ap (PS1: stack) 17 FIELD dFluxKron, FLUX_KRON_ERR, float, mean flux kron err 18 FIELD flags, FLAGS, uint32_t, photometry flags 19 FIELD Ncode, NCODE, short, number of detections in band 20 FIELD Nused, NUSED, short, number of detections used in average 21 FIELD M_20, MAG_20, short, lower 20percent mag, millimags 22 FIELD M_80, MAG_80, short, upper 20percent mag, millimags 23 FIELD ubercalDist, UBERCAL_DIST, short, number of images from an ubercal-image 24 FIELD Mstdev, MAG_STDEV, short, standard deviation of measurements, millimags 25 FIELD stackDetectID, STACK_DETECT_ID, uint64_t, detection ID on stack used for fluxes (if any) 27 26 28 27 # *** 20090206 : new fields : M_20, M_80; dropped dummy -
branches/czw_branch/20120906/Ohana/src/libdvo/doc/notes.txt
r34260 r34772 17 17 18 18 4) create a DVOTableFormat entry for the new format 19 (libdvo/include/dvo.h). the naming conve tion is DVO_FORMAT_FOO.19 (libdvo/include/dvo.h). the naming convention is DVO_FORMAT_FOO. 20 20 21 21 5) add an entry for the new format in dvo_catalog_catformat -
branches/czw_branch/20120906/Ohana/src/libdvo/include/dvo.h
r34405 r34772 131 131 ID_MEAS_UNDEF_5 = 0x00004000, // unused 132 132 ID_MEAS_PHOTOM_UBERCAL = 0x00008000, // externally-supplied zero point from ubercal analysis 133 ID_MEAS_STACK_PRIMARY = 0x00010000, // this stack measurement is in the primary skycell 134 ID_MEAS_STACK_PHOT_SRC = 0x00020000, // this measurement supplied the stack photometry 133 135 } DVOMeasureFlags; 134 136 … … 149 151 /* Average.flags values -- these values are 32 bit (as of PS1_V1) */ 150 152 typedef enum { 151 ID_STAR_FEW = 0x00000001, // used within relphot: skip star 152 ID_STAR_POOR = 0x00000002, // used within relphot: skip star 153 ID_PROPER = 0x00000400, // star with large proper motion 154 ID_TRANSIENT = 0x00001000, // is this mutually exclusive with USNO? 155 ID_VARIABLE = 0x00002000, // not currently set? 156 ID_ASTEROID = 0x00002000, // identified with an asteroid 157 ID_BAD_OBJECT = 0x00004000, // if all measurements are bad, set this bit 158 ID_MOVING = 0x00008000, // is a moving object 159 ID_ROCK = 0x0000a000, // 0x8000 + 0x2000 160 ID_GHOST = 0x0000c001, // 0x8000 + 0x4000 + 0x0001 161 ID_TRAIL = 0x0000c002, // 0x8000 + 0x4000 + 0x0002 162 ID_BLEED = 0x0000c003, // 0x8000 + 0x4000 + 0x0003 163 ID_COSMIC = 0x0000c004, // 0x8000 + 0x4000 + 0x0004 164 ID_STAR_FIT_AVE = 0x00010000, // average position fitted 165 ID_STAR_FIT_PM = 0x00020000, // proper motion fitted 166 ID_STAR_FIT_PAR = 0x00040000, // parallax fitted 167 ID_STAR_USE_AVE = 0x00080000, // average position used (not PM or PAR) 168 ID_STAR_USE_PM = 0x00100000, // proper motion used (not AVE or PAR) 169 ID_STAR_USE_PAR = 0x00200000, // parallax used (not AVE or PM) 170 ID_OBJ_EXT = 0x01000000, // extended in our data (eg, PS) 171 ID_OBJ_EXT_ALT = 0x02000000, // extended in external data (eg, 2MASS) 172 ID_OBJ_GOOD = 0x04000000, // good-quality measurement in our data (eg,PS) 173 ID_OBJ_GOOD_ALT = 0x08000000, // good-quality measurement in external data (eg, 2MASS) 153 ID_STAR_FEW = 0x00000001, // used within relphot: skip star 154 ID_STAR_POOR = 0x00000002, // used within relphot: skip star 155 ID_PROPER = 0x00000400, // star with large proper motion 156 ID_TRANSIENT = 0x00001000, // is this mutually exclusive with USNO? 157 ID_VARIABLE = 0x00002000, // not currently set? 158 ID_ASTEROID = 0x00002000, // identified with an asteroid 159 ID_BAD_OBJECT = 0x00004000, // if all measurements are bad, set this bit 160 ID_MOVING = 0x00008000, // is a moving object 161 ID_ROCK = 0x0000a000, // 0x8000 + 0x2000 162 ID_GHOST = 0x0000c001, // 0x8000 + 0x4000 + 0x0001 163 ID_TRAIL = 0x0000c002, // 0x8000 + 0x4000 + 0x0002 164 ID_BLEED = 0x0000c003, // 0x8000 + 0x4000 + 0x0003 165 ID_COSMIC = 0x0000c004, // 0x8000 + 0x4000 + 0x0004 166 ID_STAR_FIT_AVE = 0x00010000, // average position fitted 167 ID_STAR_FIT_PM = 0x00020000, // proper motion fitted 168 ID_STAR_FIT_PAR = 0x00040000, // parallax fitted 169 ID_STAR_USE_AVE = 0x00080000, // average position used (not PM or PAR) 170 ID_STAR_USE_PM = 0x00100000, // proper motion used (not AVE or PAR) 171 ID_STAR_USE_PAR = 0x00200000, // parallax used (not AVE or PM) 172 ID_STAR_NO_ASTROM = 0x00400000, // mean astrometry could not be measured 173 ID_OBJ_EXT = 0x01000000, // extended in our data (eg, PS) 174 ID_OBJ_EXT_ALT = 0x02000000, // extended in external data (eg, 2MASS) 175 ID_OBJ_GOOD = 0x04000000, // good-quality measurement in our data (eg,PS) 176 ID_OBJ_GOOD_ALT = 0x08000000, // good-quality measurement in external data (eg, 2MASS) 177 ID_OBJ_GOOD_STACK = 0x10000000, // good-quality object in the stack (> 1 good stack) 178 ID_OBJ_SUSPECT_STACK = 0x20000000, // suspect object in the stack (> 1 good or suspect stack, < 2 good) 179 ID_OBJ_BAD_STACK = 0x40000000, // good-quality object in the stack (> 1 good stack) 174 180 } DVOAverageFlags; 175 181 … … 180 186 ID_SECF_USE_SYNTH = 0x00000004, // synthetic photometry used in average measurement 181 187 ID_SECF_USE_UBERCAL = 0x00000008, // synthetic photometry used in average measurement 188 ID_SECF_HAS_PS1 = 0x00000010, // PS1 photometry used in average measurement 189 ID_SECF_HAS_STACK = 0x00000020, // PS1 stack photometry exists 182 190 ID_PHOTOM_PASS_0 = 0x00000100, // average magnitude calculated in 0th pass 183 191 ID_PHOTOM_PASS_1 = 0x00000200, // average magnitude calculated in 1th pass … … 185 193 ID_PHOTOM_PASS_3 = 0x00000800, // average magnitude calculated in 3th pass 186 194 ID_PHOTOM_PASS_4 = 0x00001000, // average magnitude calculated in 4th pass 195 ID_PSPS_OBJ_EXT = 0x00002000, // In PSPS ID_SECF_OBJ_EXT is moved here so it fits within 16 bits 187 196 ID_SECF_OBJ_EXT = 0x01000000, // extended in this band 188 197 } DVOSecfiltFlags; -
branches/czw_branch/20120906/Ohana/src/libdvo/include/dvodb.h
r34260 r34772 45 45 MAG_80, 46 46 MAG_UC_DIST, 47 MAG_STACK_ ID,47 MAG_STACK_DET_ID, 48 48 MAG_FLUX_PSF, 49 49 MAG_FLUX_PSF_ERR, … … 122 122 MEAS_XCCD_ERR, 123 123 MEAS_YCCD_ERR, 124 MEAS_XOFF, 125 MEAS_YOFF, 124 126 MEAS_POS_SYS_ERR, 125 127 MEAS_XMOSAIC, -
branches/czw_branch/20120906/Ohana/src/libdvo/src/LoadPhotcodes.c
r28246 r34772 11 11 } 12 12 13 if (!master_file) return FALSE; 14 13 15 /* next try to load the photcodes from the master text photcode file */ 14 16 /* automatically (or on demand?) save the text file to the FITS version */ -
branches/czw_branch/20120906/Ohana/src/libdvo/src/LoadPhotcodesFITS.c
r34260 r34772 16 16 /* XXX choose more sensible lock timeouts! */ 17 17 db.lockstate = LCK_SOFT; 18 db.timeout = 10.0;18 db.timeout = 60.0; 19 19 gfits_db_init (&db); 20 20 -
branches/czw_branch/20120906/Ohana/src/libdvo/src/dbExtractAverages.c
r34405 r34772 242 242 value.Flt = PhotUCdist (field->photcode, average, secfilt); 243 243 break; 244 case MAG_STACK_ ID:244 case MAG_STACK_DET_ID: 245 245 value.Int = PhotStackID (field->photcode, average, secfilt); 246 246 break; -
branches/czw_branch/20120906/Ohana/src/libdvo/src/dbExtractMeasures.c
r34405 r34772 385 385 value.Flt = FromShortDegrees(measure[0].theta); 386 386 break; 387 388 case MEAS_POSANGLE: /* OK */ 389 value.Flt = FromShortDegrees(measure[0].posangle); 390 break; 391 case MEAS_PLATESCALE: /* OK */ 392 value.Flt = measure[0].pltscale; 393 break; 394 387 395 case MEAS_MXX: /* OK */ 388 396 value.Flt = FromShortPixels(measure[0].Mxx); … … 435 443 # endif 436 444 break; 445 case MEAS_XOFF: /* OK */ 446 value.Flt = measure[0].Xoff; 447 break; 448 case MEAS_YOFF: /* OK */ 449 value.Flt = measure[0].Yoff; 450 break; 437 451 case MEAS_XCCD_ERR: /* OK */ 438 452 value.Flt = FromShortPixels(measure[0].dXccd); -
branches/czw_branch/20120906/Ohana/src/libdvo/src/dbFields.c
r34405 r34772 56 56 if (!strcasecmp (string, "80")) return (MAG_80); 57 57 if (!strcasecmp (string, "ucdist")) return (MAG_UC_DIST); 58 if (!strcasecmp (string, "stack ID")) return (MAG_STACK_ID);58 if (!strcasecmp (string, "stackDetectID")) return (MAG_STACK_DET_ID); 59 59 if (!strcasecmp (string, "fluxpsf")) return (MAG_FLUX_PSF); 60 60 if (!strcasecmp (string, "fluxpsferr")) return (MAG_FLUX_PSF_ERR); … … 217 217 if (!strcasecmp (fieldName, "XCCD:ERR")) ESCAPE (MEAS_XCCD_ERR, MAG_NONE, OPIHI_FLT); 218 218 if (!strcasecmp (fieldName, "YCCD:ERR")) ESCAPE (MEAS_YCCD_ERR, MAG_NONE, OPIHI_FLT); 219 if (!strcasecmp (fieldName, "XOFF")) ESCAPE (MEAS_XOFF, MAG_NONE, OPIHI_FLT); 220 if (!strcasecmp (fieldName, "YOFF")) ESCAPE (MEAS_YOFF, MAG_NONE, OPIHI_FLT); 219 221 if (!strcasecmp (fieldName, "POS_SYS_ERR")) ESCAPE (MEAS_POS_SYS_ERR, MAG_NONE, OPIHI_FLT); 220 222 if (!strcasecmp (fieldName, "XMOSAIC")) ESCAPE (MEAS_XMOSAIC, MAG_NONE, OPIHI_FLT); … … 228 230 if (!strcasecmp (fieldName, "CATID")) ESCAPE (MEAS_CAT_ID, MAG_NONE, OPIHI_INT); 229 231 if (!strcasecmp (fieldName, "IMAGEID")) ESCAPE (MEAS_IMAGE_ID, MAG_NONE, OPIHI_INT); 232 if (!strcasecmp (fieldName, "EXTERNID")) ESCAPE (MEAS_EXTERN_ID, MAG_NONE, OPIHI_INT); 230 233 if (!strcasecmp (fieldName, "PSF_QF")) ESCAPE (MEAS_PSF_QF, MAG_NONE, OPIHI_FLT); 231 234 if (!strcasecmp (fieldName, "PSF_QF_PERFECT")) ESCAPE (MEAS_PSF_QF_PERFECT, MAG_NONE, OPIHI_FLT); … … 237 240 if (!strcasecmp (fieldName, "SKY")) ESCAPE (MEAS_SKY, MAG_NONE, OPIHI_FLT); 238 241 if (!strcasecmp (fieldName, "SKY_ERR")) ESCAPE (MEAS_dSKY, MAG_NONE, OPIHI_FLT); 239 if (!strcasecmp (fieldName, "externID")) ESCAPE (MEAS_EXTERN_ID, MAG_NONE, OPIHI_INT);240 242 if (!strcasecmp (fieldName, "MCAL_OFFSET")) ESCAPE (MEAS_MCAL_OFFSET, MAG_NONE, OPIHI_FLT); 241 243 if (!strcasecmp (fieldName, "FLAT")) ESCAPE (MEAS_FLAT, MAG_NONE, OPIHI_FLT); … … 260 262 field->magMode = mode; 261 263 switch (mode) { 262 case MAG_STACK_ ID:264 case MAG_STACK_DET_ID: 263 265 case MAG_NCODE: 264 266 case MAG_NPHOT: … … 351 353 field->magMode = mode; 352 354 switch (mode) { 353 case MAG_STACK_ ID:355 case MAG_STACK_DET_ID: 354 356 case MAG_NCODE: 355 357 case MAG_NPHOT: -
branches/czw_branch/20120906/Ohana/src/libdvo/src/dvo_catalog.c
r34405 r34772 83 83 average->dP = 0; 84 84 85 average->ChiSqAve = 0.0;86 average->ChiSqPM = 0.0;87 average->ChiSqPar = 0.0;85 average->ChiSqAve = NAN; 86 average->ChiSqPM = NAN; 87 average->ChiSqPar = NAN; 88 88 average->Tmean = 0; 89 89 average->Trange = 0; 90 91 average->psfQF = NAN; 92 average->psfQFperf = NAN; 90 93 91 94 average->stargal = 0.0; … … 131 134 secfilt->ubercalDist = 1000; 132 135 secfilt->Mstdev = NAN_S_SHORT; 133 secfilt->stackID = 0; 134 135 secfilt->dummy = 0; 136 secfilt->stackDetectID = 0; 136 137 } 137 138 … … 160 161 measure->Xccd = NAN; 161 162 measure->Yccd = NAN; 163 measure->Xoff = 0.0; 164 measure->Yoff = 0.0; 162 165 163 166 measure->Sky = NAN; … … 175 178 176 179 measure->psfQF = NAN; 180 measure->psfQFperf = NAN; 177 181 measure->psfChisq = NAN; 178 182 measure->psfNdof = 0; -
branches/czw_branch/20120906/Ohana/src/libdvo/src/dvo_catalog_split.c
r33963 r34772 83 83 return (FALSE); 84 84 } 85 off_t fullsize = catalog->header.datasize; 85 86 86 87 // write the PHU matrix; this is probably a NOP, do I have to keep it in? … … 91 92 return (FALSE); 92 93 } 94 fullsize += matrix.datasize; 93 95 gfits_free_matrix (&matrix); 94 96 … … 98 100 return (FALSE); 99 101 } 102 fullsize += ftable->datasize + ftable->header->datasize; 103 104 // if the output file will be completely re-written, truncate to total datasize 105 if ((start == 0) && (Nrows == Ntotal)) { 106 int fd = fileno (catalog->f); 107 if (ftruncate (fd, fullsize)) { 108 perror ("dvo_catalog_save_subset: "); 109 return (FALSE); 110 } 111 } 112 100 113 return (TRUE); 101 114 } -
branches/czw_branch/20120906/Ohana/src/libdvo/src/dvo_convert_PS1_DEV_1.c
r34405 r34772 11 11 12 12 for (i = 0; i < Nvalues; i++) { 13 dvo_measure_init (&out[i]); 13 14 out[i].dR = in[i].dR; 14 15 out[i].dD = in[i].dD; … … 40 41 out[i].photFlags = in[i].photFlags; 41 42 42 // changed or addedfor PS1_DEV_243 // changed for PS1_DEV_2 43 44 out[i].Map = in[i].Mgal; 44 out[i].dMcal = 0; 45 46 // changed or added for PS1_V1 45 46 // changed for PS1_V1 47 47 out[i].photFlags = in[i].photFlags | (in[i].dophot << 16); 48 out[i].t_msec = 0;49 out[i].extID = 0;50 out[i].objID = 0;51 out[i].catID = 0;52 out[i].Mxx = 0.0;53 out[i].Mxy = 0.0;54 out[i].Myy = 0.0;55 out[i].posangle = 0;56 out[i].pltscale = 0;57 out[i].psfNdof = 0;58 out[i].psfNpix = 0;59 60 // added for PS1_V461 out[i].Mkron = NAN;62 out[i].dMkron = NAN;63 out[i].FluxPSF = NAN;64 out[i].dFluxPSF = NAN;65 out[i].FluxKron = NAN;66 out[i].dFluxKron = NAN;67 out[i].psfQFperf = NAN;68 48 } 69 49 return (out); … … 125 105 126 106 for (i = 0; i < Nvalues; i++) { 107 dvo_average_init (&out[i]); 108 127 109 out[i].R = in[i].R; 128 110 out[i].D = in[i].D; … … 138 120 out[i].catID = in[i].catID; 139 121 140 // changed or addedfor PS1_DEV_2122 // changed for PS1_DEV_2 141 123 out[i].Nmeasure = in[i].Nm; 142 124 out[i].Nmissing = in[i].Nn; 143 125 out[i].measureOffset = in[i].offset; 144 126 out[i].missingOffset = in[i].missing; 145 out[i].Nextend = 0; 146 out[i].extendOffset = 0; 147 148 // changed or added for PS1_V1 127 128 // changed for PS1_V1 149 129 out[i].flags = in[i].code; 150 out[i].ChiSqAve = NAN; 151 out[i].ChiSqPM = NAN; 152 out[i].ChiSqPar = NAN; 153 out[i].Tmean = 0; 154 out[i].Trange = 0; 155 out[i].Npos = 0.0; 156 out[i].extID = 0; 157 158 // added in PS1_V3 159 out[i].photFlagsUpper = 0; 160 out[i].photFlagsLower = 0; 161 162 // added for PS1_V4 (Xp dropped in V4 onward, was not really used anyway) 163 out[i].psfQF = NAN; 164 out[i].psfQFperf = NAN; 165 out[i].stargal = NAN; 130 131 // PS1_V4 : Xp dropped in V4 onward, was not really used anyway 166 132 } 167 133 return (out); … … 210 176 211 177 for (i = 0; i < Nvalues; i++) { 178 dvo_secfilt_init (&out[i]); 179 212 180 out[i].M = in[i].M; 213 181 out[i].dM = in[i].dM; … … 215 183 out[i].Ncode = in[i].Ncode; 216 184 out[i].Nused = in[i].Nused; 217 218 // changed or added for PS1_V1219 out[i].M_20 = 0;220 out[i].M_80 = 0;221 222 // changed or added for PS1_V2223 out[i].flags = 0;224 225 // added in PS1_V3226 out[i].Map = 0;227 out[i].Mstdev = 0;228 out[i].ubercalDist = 0;229 230 // added for PS1_V4231 out[i].Mkron = NAN;232 out[i].dMkron = NAN;233 out[i].FluxPSF = NAN;234 out[i].dFluxPSF = NAN;235 out[i].FluxKron = NAN;236 out[i].dFluxKron = NAN;237 out[i].stackID = 0;238 185 } 239 186 return (out); -
branches/czw_branch/20120906/Ohana/src/libdvo/src/dvo_convert_PS1_DEV_2.c
r34405 r34772 11 11 12 12 for (i = 0; i < Nvalues; i++) { 13 dvo_measure_init (&out[i]); 13 14 out[i].dR = in[i].dR; 14 15 out[i].dD = in[i].dD; … … 41 42 out[i].dbFlags = in[i].dbFlags; 42 43 43 // changed or addedfor PS1_V144 // changed for PS1_V1 44 45 out[i].photFlags = in[i].photFlags | (in[i].dophot << 16); 45 out[i].t_msec = 0;46 out[i].extID = 0;47 out[i].objID = 0;48 out[i].catID = 0;49 out[i].Mxx = 0.0;50 out[i].Mxy = 0.0;51 out[i].Myy = 0.0;52 out[i].posangle = 0;53 out[i].pltscale = 0;54 out[i].psfNdof = 0;55 out[i].psfNpix = 0;56 57 // added for PS1_V458 out[i].Mkron = NAN;59 out[i].dMkron = NAN;60 out[i].FluxPSF = NAN;61 out[i].dFluxPSF = NAN;62 out[i].FluxKron = NAN;63 out[i].dFluxKron = NAN;64 out[i].psfQFperf = NAN;65 46 } 66 47 return (out); … … 121 102 122 103 for (i = 0; i < Nvalues; i++) { 104 dvo_average_init (&out[i]); 105 123 106 out[i].R = in[i].R; 124 107 out[i].D = in[i].D; … … 140 123 out[i].catID = in[i].catID; 141 124 142 // changed or addedfor PS1_V1125 // changed for PS1_V1 143 126 out[i].flags = in[i].code; 144 out[i].ChiSqAve = NAN;145 out[i].ChiSqPM = NAN;146 out[i].ChiSqPar = NAN;147 out[i].Tmean = 0;148 out[i].Trange = 0;149 out[i].Npos = 0.0;150 out[i].extID = 0;151 152 // added in PS1_V3153 out[i].photFlagsUpper = 0;154 out[i].photFlagsLower = 0;155 156 // added for PS1_V4 (Xp dropped in V4 onward, was not really used anyway)157 out[i].psfQF = NAN;158 out[i].psfQFperf = NAN;159 out[i].stargal = NAN;160 127 } 161 128 return (out); … … 204 171 205 172 for (i = 0; i < Nvalues; i++) { 173 dvo_secfilt_init (&out[i]); 174 206 175 out[i].M = in[i].M; 207 176 out[i].dM = in[i].dM; … … 209 178 out[i].Ncode = in[i].Ncode; 210 179 out[i].Nused = in[i].Nused; 211 212 // changed or added for PS1_V1213 out[i].M_20 = 0;214 out[i].M_80 = 0;215 216 // changed or added for PS1_V2217 out[i].flags = 0;218 219 // added in PS1_V3220 out[i].Map = 0;221 out[i].Mstdev = 0;222 out[i].ubercalDist = 0;223 224 // added for PS1_V4225 out[i].Mkron = NAN;226 out[i].dMkron = NAN;227 out[i].FluxPSF = NAN;228 out[i].dFluxPSF = NAN;229 out[i].FluxKron = NAN;230 out[i].dFluxKron = NAN;231 out[i].stackID = 0;232 180 } 233 181 return (out); -
branches/czw_branch/20120906/Ohana/src/libdvo/src/dvo_convert_PS1_REF.c
r34405 r34772 11 11 12 12 for (i = 0; i < Nvalues; i++) { 13 dvo_measure_init (&out[i]); 14 13 15 out[i].dR = in[i].dR; 14 16 out[i].dD = in[i].dD; 15 17 out[i].M = in[i].M; 16 out[i].Mcal = 0.0;17 out[i].Map = NAN;18 18 out[i].dM = in[i].dM; 19 out[i].dMcal = 0.0;20 19 out[i].dt = in[i].dt; 21 out[i].airmass = NAN;22 out[i].az = NAN;23 out[i].Xccd = NAN;24 out[i].Yccd = NAN;25 out[i].Sky = NAN;26 out[i].dSky = NAN;27 20 out[i].t = in[i].t; 28 out[i].t_msec = 0;29 21 out[i].averef = in[i].averef; 30 out[i].detID = 0;31 out[i].imageID = 0;32 22 out[i].objID = in[i].objID; 33 23 out[i].catID = in[i].catID; 34 out[i].extID = 0;35 24 out[i].psfQF = 1.0; // we do not save a value, but some operations (relphot/average) filter on this value.. 36 out[i].psfChisq = NAN;37 out[i].psfNdof = 0;38 out[i].psfNpix = 0;39 out[i].crNsigma = NAN;40 out[i].extNsigma = NAN;41 out[i].FWx = 0;42 out[i].FWy = 0;43 out[i].theta = 0;44 out[i].Mxx = 0;45 out[i].Mxy = 0;46 out[i].Myy = 0;47 out[i].dXccd = 0;48 out[i].dYccd = 0;49 out[i].posangle = 0;50 out[i].pltscale = NAN;51 25 out[i].photcode = in[i].photcode; 52 out[i].dbFlags = 0;53 out[i].photFlags = 0;54 55 // added for PS1_V456 out[i].Mkron = NAN;57 out[i].dMkron = NAN;58 out[i].FluxPSF = NAN;59 out[i].dFluxPSF = NAN;60 out[i].FluxKron = NAN;61 out[i].dFluxKron = NAN;62 out[i].psfQFperf = NAN;63 26 } 64 27 return (out); … … 96 59 97 60 for (i = 0; i < Nvalues; i++) { 61 dvo_average_init (&out[i]); 62 98 63 out[i].R = in[i].R; 99 64 out[i].D = in[i].D; 100 65 out[i].dR = in[i].dR; 101 66 out[i].dD = in[i].dD; 102 out[i].uR = NAN;103 out[i].uD = NAN;104 out[i].duR = NAN;105 out[i].duD = NAN;106 out[i].P = NAN;107 out[i].dP = NAN;108 out[i].ChiSqAve = NAN;109 out[i].ChiSqPM = NAN;110 out[i].ChiSqPar = NAN;111 out[i].Tmean = 0;112 out[i].Trange = 0;113 out[i].Npos = 0;114 67 out[i].Nmeasure = in[i].Nmeasure; 115 68 out[i].Nmissing = in[i].Nmissing; 116 out[i].Nextend = 0;117 69 out[i].measureOffset = in[i].measureOffset; 118 70 out[i].missingOffset = in[i].missingOffset; 119 out[i].extendOffset = 0;120 out[i].flags = 0;121 71 out[i].objID = in[i].objID; 122 72 out[i].catID = in[i].catID; 123 out[i].extID = 0;124 125 // added in PS1_V3126 out[i].photFlagsUpper = 0;127 out[i].photFlagsLower = 0;128 129 // added for PS1_V4 (Xp dropped in V4 onward, was not really used anyway)130 out[i].psfQF = NAN;131 out[i].psfQFperf = NAN;132 out[i].stargal = NAN;133 73 } 134 74 return (out); … … 167 107 168 108 for (i = 0; i < Nvalues; i++) { 109 dvo_secfilt_init (&out[i]); 110 169 111 out[i].M = in[i].M; 170 112 out[i].dM = in[i].dM; 171 out[i].Xm = NAN_S_SHORT;172 out[i].Ncode = 0;173 out[i].Nused = 0;174 out[i].M_20 = 0;175 out[i].M_80 = 0;176 177 // changed or added for PS1_V2178 out[i].flags = 0;179 180 // added in PS1_V3181 out[i].Map = 0;182 out[i].Mstdev = 0;183 out[i].ubercalDist = 0;184 185 // added for PS1_V4186 out[i].Mkron = NAN;187 out[i].dMkron = NAN;188 out[i].FluxPSF = NAN;189 out[i].dFluxPSF = NAN;190 out[i].FluxKron = NAN;191 out[i].dFluxKron = NAN;192 out[i].stackID = 0;193 113 } 194 114 return (out); -
branches/czw_branch/20120906/Ohana/src/libdvo/src/dvo_convert_PS1_V1.c
r34405 r34772 11 11 12 12 for (i = 0; i < Nvalues; i++) { 13 dvo_measure_init (&out[i]); 14 13 15 out[i].dR = in[i].dR; 14 16 out[i].dD = in[i].dD; … … 52 54 out[i].dbFlags = in[i].dbFlags; 53 55 out[i].photFlags = in[i].photFlags; 54 55 // added for PS1_V456 out[i].Mkron = NAN;57 out[i].dMkron = NAN;58 out[i].FluxPSF = NAN;59 out[i].dFluxPSF = NAN;60 out[i].FluxKron = NAN;61 out[i].dFluxKron = NAN;62 out[i].psfQFperf = NAN;63 56 } 64 57 return (out); … … 128 121 129 122 for (i = 0; i < Nvalues; i++) { 123 dvo_average_init (&out[i]); 124 130 125 out[i].R = in[i].R; 131 126 out[i].D = in[i].D; … … 139 134 out[i].dP = in[i].dP; 140 135 out[i].ChiSqAve = in[i].ChiSq; 141 out[i].ChiSqPM = NAN;142 out[i].ChiSqPar = NAN;143 out[i].Tmean = 0;144 out[i].Trange = 0;145 136 out[i].Npos = in[i].Npos; 146 137 out[i].Nmeasure = in[i].Nmeasure; … … 154 145 out[i].catID = in[i].catID; 155 146 out[i].extID = in[i].extID; 156 157 // added in PS1_V3158 out[i].photFlagsUpper = 0;159 out[i].photFlagsLower = 0;160 161 // added for PS1_V4 (Xp dropped in V4 onward, was not really used anyway)162 out[i].psfQF = NAN;163 out[i].psfQFperf = NAN;164 out[i].stargal = NAN;165 147 } 166 148 return (out); … … 210 192 211 193 for (i = 0; i < Nvalues; i++) { 194 dvo_secfilt_init (&out[i]); 195 212 196 out[i].M = in[i].M; 213 197 out[i].dM = in[i].dM; … … 217 201 out[i].M_20 = in[i].M_20; 218 202 out[i].M_80 = in[i].M_80; 219 220 // changed or added for PS1_V2221 out[i].flags = 0;222 223 // added in PS1_V3224 out[i].Map = 0;225 out[i].Mstdev = 0;226 out[i].ubercalDist = 0;227 228 // added for PS1_V4229 out[i].Mkron = NAN;230 out[i].dMkron = NAN;231 out[i].FluxPSF = NAN;232 out[i].dFluxPSF = NAN;233 out[i].FluxKron = NAN;234 out[i].dFluxKron = NAN;235 out[i].stackID = 0;236 203 } 237 204 return (out); -
branches/czw_branch/20120906/Ohana/src/libdvo/src/dvo_convert_PS1_V2.c
r34405 r34772 11 11 12 12 for (i = 0; i < Nvalues; i++) { 13 dvo_measure_init (&out[i]); 14 13 15 out[i].dR = in[i].dR; 14 16 out[i].dD = in[i].dD; … … 53 55 out[i].dbFlags = in[i].dbFlags; 54 56 out[i].photFlags = in[i].photFlags; 55 56 // added for PS1_V457 out[i].Mkron = NAN;58 out[i].dMkron = NAN;59 out[i].FluxPSF = NAN;60 out[i].dFluxPSF = NAN;61 out[i].FluxKron = NAN;62 out[i].dFluxKron = NAN;63 out[i].psfQFperf = NAN;64 57 } 65 58 return (out); … … 129 122 130 123 for (i = 0; i < Nvalues; i++) { 124 dvo_average_init (&out[i]); 125 131 126 out[i].R = in[i].R; 132 127 out[i].D = in[i].D; … … 155 150 out[i].catID = in[i].catID; 156 151 out[i].extID = in[i].extID; 157 158 // added in PS1_V3159 out[i].photFlagsUpper = 0;160 out[i].photFlagsLower = 0;161 162 // added for PS1_V4 (Xp dropped in V4 onward, was not really used anyway)163 out[i].psfQF = NAN;164 out[i].psfQFperf = NAN;165 out[i].stargal = NAN;166 152 } 167 153 return (out); … … 215 201 216 202 for (i = 0; i < Nvalues; i++) { 203 dvo_secfilt_init (&out[i]); 204 217 205 out[i].M = in[i].M; 218 206 out[i].dM = in[i].dM; … … 223 211 out[i].M_20 = in[i].M_20; 224 212 out[i].M_80 = in[i].M_80; 225 226 // added in PS1_V3227 out[i].Map = 0;228 out[i].Mstdev = 0;229 out[i].ubercalDist = 0;230 231 // added for PS1_V4232 out[i].Mkron = NAN;233 out[i].dMkron = NAN;234 out[i].FluxPSF = NAN;235 out[i].dFluxPSF = NAN;236 out[i].FluxKron = NAN;237 out[i].dFluxKron = NAN;238 out[i].stackID = 0;239 213 } 240 214 return (out); -
branches/czw_branch/20120906/Ohana/src/libdvo/src/dvo_convert_PS1_V3.c
r34405 r34772 11 11 12 12 for (i = 0; i < Nvalues; i++) { 13 dvo_measure_init (&out[i]); 14 13 15 out[i].dR = in[i].dR; 14 16 out[i].dD = in[i].dD; … … 53 55 out[i].dbFlags = in[i].dbFlags; 54 56 out[i].photFlags = in[i].photFlags; 55 56 // added for PS1_V457 out[i].Mkron = NAN;58 out[i].dMkron = NAN;59 out[i].FluxPSF = NAN;60 out[i].dFluxPSF = NAN;61 out[i].FluxKron = NAN;62 out[i].dFluxKron = NAN;63 out[i].psfQFperf = NAN;64 57 } 65 58 return (out); … … 129 122 130 123 for (i = 0; i < Nvalues; i++) { 124 dvo_average_init (&out[i]); 125 131 126 out[i].R = in[i].R; 132 127 out[i].D = in[i].D; … … 157 152 out[i].catID = in[i].catID; 158 153 out[i].extID = in[i].extID; 159 160 // added for PS1_V4 (Xp dropped in V4 onward, was not really used anyway)161 out[i].psfQF = NAN;162 out[i].psfQFperf = NAN;163 out[i].stargal = NAN;164 154 } 165 155 return (out); … … 215 205 216 206 for (i = 0; i < Nvalues; i++) { 207 dvo_secfilt_init (&out[i]); 208 217 209 out[i].M = in[i].M; 218 210 out[i].Map = in[i].Map; … … 226 218 out[i].Mstdev = in[i].Mstdev; 227 219 out[i].ubercalDist = in[i].ubercalDist; 228 229 // added for PS1_V4230 out[i].Mkron = NAN;231 out[i].dMkron = NAN;232 out[i].FluxPSF = NAN;233 out[i].dFluxPSF = NAN;234 out[i].FluxKron = NAN;235 out[i].dFluxKron = NAN;236 out[i].stackID = 0;237 220 } 238 221 return (out); -
branches/czw_branch/20120906/Ohana/src/libdvo/src/dvo_convert_PS1_V4.c
r34405 r34772 9 9 10 10 ALLOCATE_ZERO (out, Measure, Nvalues); 11 12 for (i = 0; i < Nvalues; i++) { 13 dvo_measure_init (&out[i]); 14 15 out[i].dR = in[i].dR; 16 out[i].dD = in[i].dD; 17 out[i].M = in[i].M; 18 out[i].Mcal = in[i].Mcal; 19 out[i].Map = in[i].Map; 20 out[i].Mkron = in[i].Mkron; 21 out[i].dMkron = in[i].dMkron; 22 out[i].dM = in[i].dM; 23 out[i].dMcal = in[i].dMcal; 24 out[i].dt = in[i].dt; 25 out[i].FluxPSF = in[i].FluxPSF; 26 out[i].dFluxPSF = in[i].dFluxPSF; 27 out[i].FluxKron = in[i].FluxKron; 28 out[i].dFluxKron = in[i].dFluxKron; 29 out[i].airmass = in[i].airmass; 30 out[i].az = in[i].az; 31 out[i].Xccd = in[i].Xccd; 32 out[i].Yccd = in[i].Yccd; 33 out[i].Xoff = in[i].Xoff; 34 out[i].Yoff = in[i].Yoff; 35 out[i].Sky = in[i].Sky; 36 out[i].dSky = in[i].dSky; 37 out[i].t = in[i].t; 38 out[i].t_msec = in[i].t_msec; 39 out[i].averef = in[i].averef; 40 out[i].detID = in[i].detID; 41 out[i].imageID = in[i].imageID; 42 out[i].objID = in[i].objID; 43 out[i].catID = in[i].catID; 44 out[i].extID = in[i].extID; 45 out[i].psfQF = in[i].psfQF; 46 out[i].psfQFperf = in[i].psfQFperf; 47 out[i].psfChisq = in[i].psfChisq; 48 out[i].psfNdof = in[i].psfNdof; 49 out[i].psfNpix = in[i].psfNpix; 50 out[i].crNsigma = in[i].crNsigma; 51 out[i].extNsigma = in[i].extNsigma; 52 out[i].FWx = in[i].FWx; 53 out[i].FWy = in[i].FWy; 54 out[i].theta = in[i].theta; 55 out[i].Mxx = in[i].Mxx; 56 out[i].Mxy = in[i].Mxy; 57 out[i].Myy = in[i].Myy; 58 out[i].dXccd = in[i].dXccd; 59 out[i].dYccd = in[i].dYccd; 60 out[i].dRsys = in[i].dRsys; 61 out[i].posangle = in[i].posangle; 62 out[i].pltscale = in[i].pltscale; 63 out[i].photcode = in[i].photcode; 64 out[i].dbFlags = in[i].dbFlags; 65 out[i].photFlags = in[i].photFlags; 66 } 67 return (out); 68 } 69 70 Measure_PS1_V4 *MeasureInternalTo_PS1_V4 (Measure *in, off_t Nvalues) { 71 72 off_t i; 73 Measure_PS1_V4 *out; 74 75 ALLOCATE_ZERO (out, Measure_PS1_V4, Nvalues); 11 76 12 77 for (i = 0; i < Nvalues; i++) { … … 64 129 } 65 130 66 Measure_PS1_V4 *MeasureInternalTo_PS1_V4 (Measure *in, off_t Nvalues) {67 68 off_t i;69 Measure_PS1_V4 *out;70 71 ALLOCATE_ZERO (out, Measure_PS1_V4, Nvalues);72 73 for (i = 0; i < Nvalues; i++) {74 out[i].dR = in[i].dR;75 out[i].dD = in[i].dD;76 out[i].M = in[i].M;77 out[i].Mcal = in[i].Mcal;78 out[i].Map = in[i].Map;79 out[i].Mkron = in[i].Mkron;80 out[i].dMkron = in[i].dMkron;81 out[i].dM = in[i].dM;82 out[i].dMcal = in[i].dMcal;83 out[i].dt = in[i].dt;84 out[i].FluxPSF = in[i].FluxPSF;85 out[i].dFluxPSF = in[i].dFluxPSF;86 out[i].FluxKron = in[i].FluxKron;87 out[i].dFluxKron = in[i].dFluxKron;88 out[i].airmass = in[i].airmass;89 out[i].az = in[i].az;90 out[i].Xccd = in[i].Xccd;91 out[i].Yccd = in[i].Yccd;92 out[i].Sky = in[i].Sky;93 out[i].dSky = in[i].dSky;94 out[i].t = in[i].t;95 out[i].t_msec = in[i].t_msec;96 out[i].averef = in[i].averef;97 out[i].detID = in[i].detID;98 out[i].imageID = in[i].imageID;99 out[i].objID = in[i].objID;100 out[i].catID = in[i].catID;101 out[i].extID = in[i].extID;102 out[i].psfQF = in[i].psfQF;103 out[i].psfQFperf = in[i].psfQFperf;104 out[i].psfChisq = in[i].psfChisq;105 out[i].psfNdof = in[i].psfNdof;106 out[i].psfNpix = in[i].psfNpix;107 out[i].crNsigma = in[i].crNsigma;108 out[i].extNsigma = in[i].extNsigma;109 out[i].FWx = in[i].FWx;110 out[i].FWy = in[i].FWy;111 out[i].theta = in[i].theta;112 out[i].Mxx = in[i].Mxx;113 out[i].Mxy = in[i].Mxy;114 out[i].Myy = in[i].Myy;115 out[i].dXccd = in[i].dXccd;116 out[i].dYccd = in[i].dYccd;117 out[i].dRsys = in[i].dRsys;118 out[i].posangle = in[i].posangle;119 out[i].pltscale = in[i].pltscale;120 out[i].photcode = in[i].photcode;121 out[i].dbFlags = in[i].dbFlags;122 out[i].photFlags = in[i].photFlags;123 }124 return (out);125 }126 127 131 // 'primary' is needed to conform with the API for Loneos and Elixir, but is not used 128 132 Average *Average_PS1_V4_ToInternal (Average_PS1_V4 *in, off_t Nvalues, SecFilt **primary) { … … 134 138 135 139 for (i = 0; i < Nvalues; i++) { 140 dvo_average_init (&out[i]); 141 136 142 out[i].R = in[i].R; 137 143 out[i].D = in[i].D; … … 221 227 222 228 for (i = 0; i < Nvalues; i++) { 223 out[i].M = in[i].M; 224 out[i].Map = in[i].Map; 225 out[i].Mkron = in[i].Mkron; 226 out[i].dMkron = in[i].dMkron; 227 out[i].dM = in[i].dM; 228 out[i].Xm = in[i].Xm; 229 out[i].FluxPSF = in[i].FluxPSF; 230 out[i].dFluxPSF = in[i].dFluxPSF; 231 out[i].FluxKron = in[i].FluxKron; 232 out[i].dFluxKron = in[i].dFluxKron; 233 out[i].flags = in[i].flags; 234 out[i].Ncode = in[i].Ncode; 235 out[i].Nused = in[i].Nused; 236 out[i].M_20 = in[i].M_20; 237 out[i].M_80 = in[i].M_80; 238 out[i].Mstdev = in[i].Mstdev; 239 out[i].ubercalDist = in[i].ubercalDist; 240 out[i].stackID = in[i].stackID; 229 dvo_secfilt_init (&out[i]); 230 231 out[i].M = in[i].M; 232 out[i].Map = in[i].Map; 233 out[i].Mkron = in[i].Mkron; 234 out[i].dMkron = in[i].dMkron; 235 out[i].dM = in[i].dM; 236 out[i].Xm = in[i].Xm; 237 out[i].FluxPSF = in[i].FluxPSF; 238 out[i].dFluxPSF = in[i].dFluxPSF; 239 out[i].FluxKron = in[i].FluxKron; 240 out[i].dFluxKron = in[i].dFluxKron; 241 out[i].flags = in[i].flags; 242 out[i].Ncode = in[i].Ncode; 243 out[i].Nused = in[i].Nused; 244 out[i].M_20 = in[i].M_20; 245 out[i].M_80 = in[i].M_80; 246 out[i].Mstdev = in[i].Mstdev; 247 out[i].ubercalDist = in[i].ubercalDist; 248 out[i].stackDetectID = in[i].stackDetectID; 241 249 } 242 250 return (out); … … 251 259 252 260 for (i = 0; i < Nvalues; i++) { 253 out[i].M = in[i].M;254 out[i].Map = in[i].Map;255 out[i].Mkron = in[i].Mkron;256 out[i].dMkron = in[i].dMkron;257 out[i].dM = in[i].dM;258 out[i].Xm = in[i].Xm;259 out[i].FluxPSF = in[i].FluxPSF;260 out[i].dFluxPSF = in[i].dFluxPSF;261 out[i].FluxKron = in[i].FluxKron;262 out[i].dFluxKron = in[i].dFluxKron;263 out[i].flags = in[i].flags;264 out[i].Ncode = in[i].Ncode;265 out[i].Nused = in[i].Nused;266 out[i].M_20 = in[i].M_20;267 out[i].M_80 = in[i].M_80;268 out[i].Mstdev = in[i].Mstdev;269 out[i].ubercalDist = in[i].ubercalDist;270 out[i].stack ID = in[i].stackID;261 out[i].M = in[i].M; 262 out[i].Map = in[i].Map; 263 out[i].Mkron = in[i].Mkron; 264 out[i].dMkron = in[i].dMkron; 265 out[i].dM = in[i].dM; 266 out[i].Xm = in[i].Xm; 267 out[i].FluxPSF = in[i].FluxPSF; 268 out[i].dFluxPSF = in[i].dFluxPSF; 269 out[i].FluxKron = in[i].FluxKron; 270 out[i].dFluxKron = in[i].dFluxKron; 271 out[i].flags = in[i].flags; 272 out[i].Ncode = in[i].Ncode; 273 out[i].Nused = in[i].Nused; 274 out[i].M_20 = in[i].M_20; 275 out[i].M_80 = in[i].M_80; 276 out[i].Mstdev = in[i].Mstdev; 277 out[i].ubercalDist = in[i].ubercalDist; 278 out[i].stackDetectID = in[i].stackDetectID; 271 279 } 272 280 return (out); -
branches/czw_branch/20120906/Ohana/src/libdvo/src/dvo_convert_elixir.c
r34405 r34772 10 10 11 11 for (i = 0; i < Nvalues; i++) { 12 dvo_measure_init (&out[i]); 12 13 out[i].FWx = in[i].FWx; 13 14 out[i].t = in[i].t; … … 28 29 29 30 // added for PANSTARRS_DEV_0 30 out[i].Xccd = 0; // determine on-the-fly 31 out[i].Yccd = 0; // determine on-the-fly 32 out[i].dXccd = 0; 33 out[i].dYccd = 0; 34 out[i].az = 0; 35 out[i].Sky = 0; 36 out[i].dSky = 0; 37 out[i].psfQF = 0; 38 out[i].psfChisq = 0; 39 out[i].crNsigma = 0; 40 out[i].extNsigma = 0; 41 out[i].detID = 0; // determine on-the-fly 42 out[i].imageID = 0; // determine on-the-fly 43 44 // changed or added for PS1_DEV_1 (2008.02.26) 31 // out[i].Xccd = 0; // determine on-the-fly 32 // out[i].Yccd = 0; // determine on-the-fly 33 // out[i].detID = 0; // determine on-the-fly 34 // out[i].imageID = 0; // determine on-the-fly 35 36 // changed for PS1_DEV_1 (2008.02.26) 45 37 out[i].dbFlags = in[i].flags; 46 out[i].detID = 0; 47 out[i].imageID = 0; 48 49 // changed or added for PS1_DEV_2 38 39 // changed for PS1_DEV_2 50 40 out[i].Map = in[i].Mgal; 51 out[i].dMcal = 0; 52 53 // changed or added for PS1_V1 41 42 // changed for PS1_V1 54 43 out[i].photFlags = in[i].dophot << 16; 55 out[i].t_msec = 0;56 out[i].extID = 0;57 out[i].objID = 0;58 out[i].catID = 0;59 out[i].Mxx = 0.0;60 out[i].Mxy = 0.0;61 out[i].Myy = 0.0;62 out[i].posangle = 0;63 out[i].pltscale = 0;64 out[i].psfNdof = 0;65 out[i].psfNpix = 0;66 67 // added for PS1_V468 out[i].Mkron = NAN;69 out[i].dMkron = NAN;70 out[i].FluxPSF = NAN;71 out[i].dFluxPSF = NAN;72 out[i].FluxKron = NAN;73 out[i].dFluxKron = NAN;74 out[i].psfQFperf = NAN;75 44 } 76 45 return (out); … … 126 95 127 96 for (i = 0; i < Nvalues; i++) { 97 dvo_average_init (&out[i]); 98 dvo_secfilt_init (&primary[0][i]); 99 128 100 out[i].R = in[i].R; 129 101 out[i].D = in[i].D; … … 134 106 primary[0][i].Xm = in[i].Xm; 135 107 136 primary[0][i].Ncode = 0;137 primary[0][i].Nused = 0;138 139 108 // added for PANSTARRS_DEV_0 140 out[i].dR = 0; 141 out[i].dD = 0; 142 out[i].uR = 0; 143 out[i].uD = 0; 144 out[i].duR = 0; 145 out[i].duD = 0; 146 out[i].P = 0; 147 out[i].dP = 0; 148 out[i].objID = 0; // determine on-the-fly 149 out[i].catID = 0; // determine on-the-fly 109 // out[i].objID = 0; // determine on-the-fly 110 // out[i].catID = 0; // determine on-the-fly 150 111 151 112 // changed or added for PS1_DEV_2 … … 154 115 out[i].measureOffset = in[i].offset; 155 116 out[i].missingOffset = in[i].missing; 156 out[i].Nextend = 0;157 out[i].extendOffset = 0;158 117 159 118 // changed or added for PS1_V1 160 119 out[i].flags = in[i].code; 161 out[i].ChiSqAve = NAN;162 out[i].ChiSqPM = NAN;163 out[i].ChiSqPar = NAN;164 out[i].Tmean = 0;165 out[i].Trange = 0;166 out[i].Npos = 0.0;167 out[i].extID = 0;168 169 // added in PS1_V3170 out[i].photFlagsUpper = 0;171 out[i].photFlagsLower = 0;172 173 // added for PS1_V4 (Xp dropped in V4 onward, was not really used anyway)174 out[i].psfQF = NAN;175 out[i].psfQFperf = NAN;176 out[i].stargal = NAN;177 120 } 178 121 return (out); … … 217 160 218 161 for (i = 0; i < Nvalues; i++) { 162 dvo_secfilt_init (&out[i]); 163 219 164 out[i].Xm = in[i].Xm; 220 165 … … 222 167 out[i].M = (in[i].M == NAN_S_SHORT) ? NAN : in[i].M * 0.001; 223 168 out[i].dM = (in[i].dM == NAN_S_SHORT) ? NAN : in[i].dM * 0.001; 224 out[i].Ncode = 0;225 out[i].Nused = 0;226 227 // changed or added for PS1_V1228 out[i].M_20 = 0;229 out[i].M_80 = 0;230 231 // changed or added for PS1_V2232 out[i].flags = 0;233 234 // added in PS1_V3235 out[i].Map = 0;236 out[i].Mstdev = 0;237 out[i].ubercalDist = 0;238 239 // added for PS1_V4240 out[i].Mkron = NAN;241 out[i].dMkron = NAN;242 out[i].FluxPSF = NAN;243 out[i].dFluxPSF = NAN;244 out[i].FluxKron = NAN;245 out[i].dFluxKron = NAN;246 out[i].stackID = 0;247 169 } 248 170 return (out); -
branches/czw_branch/20120906/Ohana/src/libdvo/src/dvo_convert_loneos.c
r34405 r34772 10 10 11 11 for (i = 0; i < Nvalues; i++) { 12 dvo_measure_init (&out[i]); 12 13 out[i].t = in[i].t; 13 14 … … 16 17 out[i].dbFlags = (in[i].averef & 0xff000000) >> 24; 17 18 out[i].t = in[i].t; 18 out[i].dt = 0;19 out[i].airmass = 0;20 out[i].FWy = 0;21 out[i].FWx = 0;22 out[i].theta = 0;23 19 24 20 // changed for PANSTARRS_DEV_0 … … 32 28 33 29 // added for PANSTARRS_DEV_0 34 out[i].Xccd = 0; // determine on-the-fly 35 out[i].Yccd = 0; // determine on-the-fly 36 out[i].dXccd = 0; 37 out[i].dYccd = 0; 38 out[i].az = 0; 39 out[i].Sky = 0; 40 out[i].dSky = 0; 41 out[i].psfQF = 0; 42 out[i].psfChisq = 0; 43 out[i].crNsigma = 0; 44 out[i].extNsigma = 0; 45 out[i].detID = 0; // determine on-the-fly 46 out[i].imageID = 0; // determine on-the-fly 47 48 // changed or added for PS1_DEV_1 (2008.02.26) 49 out[i].detID = 0; 50 out[i].imageID = 0; 51 52 // changed or added for PS1_DEV_2 53 out[i].dMcal = 0; 30 // out[i].Xccd = 0; // determine on-the-fly 31 // out[i].Yccd = 0; // determine on-the-fly 32 // out[i].detID = 0; // determine on-the-fly 33 // out[i].imageID = 0; // determine on-the-fly 54 34 55 35 // changed or added for PS1_V1 56 36 out[i].photFlags = in[i].dophot << 16; 57 out[i].t_msec = 0;58 out[i].extID = 0;59 out[i].objID = 0;60 out[i].catID = 0;61 out[i].Mxx = 0.0;62 out[i].Mxy = 0.0;63 out[i].Myy = 0.0;64 out[i].posangle = 0;65 out[i].pltscale = 0;66 out[i].psfNdof = 0;67 out[i].psfNpix = 0;68 69 // added for PS1_V470 out[i].Mkron = NAN;71 out[i].dMkron = NAN;72 out[i].FluxPSF = NAN;73 out[i].dFluxPSF = NAN;74 out[i].FluxKron = NAN;75 out[i].dFluxKron = NAN;76 out[i].psfQFperf = NAN;77 37 } 78 38 return (out); … … 117 77 118 78 for (i = 0; i < Nvalues; i++) { 79 dvo_average_init (&out[i]); 80 dvo_secfilt_init (&primary[0][i]); 81 119 82 out[i].R = in[i].R; 120 83 out[i].D = in[i].D; 121 122 // added for ELIXIR123 primary[0][i].dM = NAN;124 84 125 85 // changed for PANSTARRS_DEV_0 (moved from Average to Measure) 126 86 primary[0][i].M = (in[i].M == NAN_S_SHORT) ? NAN : in[i].M * 0.001; 127 87 primary[0][i].Xm = in[i].Xm; 128 primary[0][i].Ncode = 0;129 primary[0][i].Nused = 0;130 88 131 89 // added for PANSTARRS_DEV_0 132 out[i].dR = 0; 133 out[i].dD = 0; 134 out[i].uR = 0; 135 out[i].uD = 0; 136 out[i].duR = 0; 137 out[i].duD = 0; 138 out[i].P = 0; 139 out[i].dP = 0; 140 out[i].objID = 0; // determine on-the-fly 141 out[i].catID = 0; // determine on-the-fly 90 // out[i].objID = 0; // determine on-the-fly 91 // out[i].catID = 0; // determine on-the-fly 142 92 143 93 // changed or added for PS1_DEV_2 … … 146 96 out[i].measureOffset = in[i].offset; 147 97 out[i].missingOffset = in[i].missing; 148 out[i].Nextend = 0;149 out[i].extendOffset = 0;150 98 151 99 // changed or added for PS1_V1 152 100 out[i].flags = in[i].code; 153 out[i].ChiSqAve = NAN; 154 out[i].ChiSqPM = NAN; 155 out[i].ChiSqPar = NAN; 156 out[i].Tmean = 0; 157 out[i].Trange = 0; 158 out[i].Npos = 0.0; 159 out[i].extID = 0; 160 161 // added in PS1_V3 162 out[i].photFlagsUpper = 0; 163 out[i].photFlagsLower = 0; 164 165 // added for PS1_V4 (Xp dropped in V4 onward, was not really used anyway) 166 out[i].psfQF = NAN; 167 out[i].psfQFperf = NAN; 168 out[i].stargal = NAN; 101 102 // PS1_V4 : (Xp dropped in V4 onward, was not really used anyway) 169 103 } 170 104 return (out); … … 208 142 209 143 for (i = 0; i < Nvalues; i++) { 144 dvo_secfilt_init (&out[i]); 145 210 146 out[i].Xm = in[i].Xm; 211 147 212 // added for ELIXIR213 out[i].dM = NAN;214 215 148 // added or changed for PANSTARRS_DEV_0 216 149 out[i].M = (in[i].M == NAN_S_SHORT) ? NAN : in[i].M * 0.001; 217 out[i].Ncode = 0;218 out[i].Nused = 0;219 220 // changed or added for PS1_V1221 out[i].M_20 = 0;222 out[i].M_80 = 0;223 224 // changed or added for PS1_V2225 out[i].flags = 0;226 227 // added in PS1_V3228 out[i].Map = 0;229 out[i].Mstdev = 0;230 out[i].ubercalDist = 0;231 232 // added for PS1_V4233 out[i].Mkron = NAN;234 out[i].dMkron = NAN;235 out[i].FluxPSF = NAN;236 out[i].dFluxPSF = NAN;237 out[i].FluxKron = NAN;238 out[i].dFluxKron = NAN;239 out[i].stackID = 0;240 150 } 241 151 return (out); -
branches/czw_branch/20120906/Ohana/src/libdvo/src/dvo_convert_panstarrs_DEV_0.c
r34405 r34772 10 10 11 11 for (i = 0; i < Nvalues; i++) { 12 dvo_measure_init (&out[i]); 12 13 out[i].dR = in[i].dR; 13 14 out[i].dD = in[i].dD; … … 35 36 // magnitudes. Most uses of Mgal in the past were actually aperture (isophotal) mags 36 37 37 // changed or addedfor PS1_DEV_1 (2008.02.26)38 // changed for PS1_DEV_1 (2008.02.26) 38 39 out[i].psfQF = (in[i].psfQF == NAN_S_SHORT) ? NAN : in[i].psfQF; 39 40 out[i].dbFlags = in[i].flags; 40 41 out[i].detID = in[i].detID_lo; 41 42 out[i].imageID = in[i].imageID_lo; 42 out[i].psfChisq = 0; 43 out[i].crNsigma = 0; 44 out[i].extNsigma = 0; 45 46 // changed or added for PS1_DEV_2 43 44 // changed for PS1_DEV_2 47 45 out[i].Map = in[i].Mgal; 48 out[i].dMcal = 0; 49 50 // changed or added for PS1_V1 46 47 // changed for PS1_V1 51 48 out[i].photFlags = in[i].dophot << 16; 52 out[i].t_msec = 0;53 out[i].extID = 0;54 out[i].objID = 0;55 out[i].catID = 0;56 out[i].Mxx = 0.0;57 out[i].Mxy = 0.0;58 out[i].Myy = 0.0;59 out[i].posangle = 0;60 out[i].pltscale = 0;61 out[i].psfNdof = 0;62 out[i].psfNpix = 0;63 64 // added for PS1_V465 out[i].Mkron = NAN;66 out[i].dMkron = NAN;67 out[i].FluxPSF = NAN;68 out[i].dFluxPSF = NAN;69 out[i].FluxKron = NAN;70 out[i].dFluxKron = NAN;71 out[i].psfQFperf = NAN;72 49 } 73 50 return (out); … … 132 109 133 110 for (i = 0; i < Nvalues; i++) { 111 dvo_average_init (&out[i]); 112 134 113 out[i].R = in[i].R; 135 114 out[i].D = in[i].D; … … 145 124 out[i].catID = in[i].catID; 146 125 147 // changed or addedfor PS1_DEV_2126 // changed for PS1_DEV_2 148 127 out[i].Nmeasure = in[i].Nm; 149 128 out[i].Nmissing = in[i].Nn; 150 129 out[i].measureOffset = in[i].offset; 151 130 out[i].missingOffset = in[i].missing; 152 out[i].Nextend = 0; 153 out[i].extendOffset = 0; 154 155 // changed or added for PS1_V1 131 132 // changed for PS1_V1 156 133 out[i].flags = in[i].code; 157 out[i].ChiSqAve = NAN;158 out[i].ChiSqPM = NAN;159 out[i].ChiSqPar = NAN;160 out[i].Tmean = 0;161 out[i].Trange = 0;162 out[i].Npos = 0.0;163 out[i].extID = 0;164 165 // added in PS1_V3166 out[i].photFlagsUpper = 0;167 out[i].photFlagsLower = 0;168 169 // added for PS1_V4 (Xp dropped in V4 onward, was not really used anyway)170 out[i].psfQF = NAN;171 out[i].psfQFperf = NAN;172 out[i].stargal = NAN;173 134 } 174 135 return (out); … … 219 180 220 181 for (i = 0; i < Nvalues; i++) { 182 dvo_secfilt_init (&out[i]); 183 221 184 out[i].M = in[i].M; 222 185 out[i].dM = in[i].dM; … … 224 187 out[i].Ncode = in[i].Ncode; 225 188 out[i].Nused = in[i].Nused; 226 227 // changed or added for PS1_V1228 out[i].M_20 = 0;229 out[i].M_80 = 0;230 231 // changed or added for PS1_V2232 out[i].flags = 0;233 234 // added in PS1_V3235 out[i].Map = 0;236 out[i].Mstdev = 0;237 out[i].ubercalDist = 0;238 239 // added for PS1_V4240 out[i].Mkron = NAN;241 out[i].dMkron = NAN;242 out[i].FluxPSF = NAN;243 out[i].dFluxPSF = NAN;244 out[i].FluxKron = NAN;245 out[i].dFluxKron = NAN;246 out[i].stackID = 0;247 189 } 248 190 return (out); -
branches/czw_branch/20120906/Ohana/src/libdvo/src/dvo_convert_panstarrs_DEV_1.c
r34405 r34772 10 10 11 11 for (i = 0; i < Nvalues; i++) { 12 dvo_measure_init (&out[i]); 12 13 out[i].dR = in[i].dR; 13 14 out[i].dD = in[i].dD; … … 40 41 out[i].detID = in[i].detID_lo; 41 42 out[i].imageID = in[i].imageID_lo; 42 out[i].psfChisq = 0; 43 out[i].crNsigma = 0; 44 out[i].extNsigma = 0; 45 46 // changed or added for PS1_DEV_2 43 44 // changed for PS1_DEV_2 47 45 out[i].Map = in[i].Mgal; 48 out[i].dMcal = 0; 49 50 // changed or added for PS1_V1 46 47 // changed for PS1_V1 51 48 out[i].photFlags = in[i].dophot << 16; 52 out[i].t_msec = 0;53 out[i].extID = 0;54 out[i].objID = 0;55 out[i].catID = 0;56 out[i].Mxx = 0.0;57 out[i].Mxy = 0.0;58 out[i].Myy = 0.0;59 out[i].posangle = 0;60 out[i].pltscale = 0;61 out[i].psfNdof = 0;62 out[i].psfNpix = 0;63 64 // added for PS1_V465 out[i].Mkron = NAN;66 out[i].dMkron = NAN;67 out[i].FluxPSF = NAN;68 out[i].dFluxPSF = NAN;69 out[i].FluxKron = NAN;70 out[i].dFluxKron = NAN;71 out[i].psfQFperf = NAN;72 49 } 73 50 return (out); … … 132 109 133 110 for (i = 0; i < Nvalues; i++) { 111 dvo_average_init (&out[i]); 112 134 113 out[i].R = in[i].R; 135 114 out[i].D = in[i].D; … … 145 124 out[i].catID = in[i].catID; 146 125 147 // changed or addedfor PS1_DEV_2126 // changed for PS1_DEV_2 148 127 out[i].Nmeasure = in[i].Nm; 149 128 out[i].Nmissing = in[i].Nn; 150 129 out[i].measureOffset = in[i].offset; 151 130 out[i].missingOffset = in[i].missing; 152 out[i].Nextend = 0; 153 out[i].extendOffset = 0; 154 155 // changed or added for PS1_V1 131 132 // changed for PS1_V1 156 133 out[i].flags = in[i].code; 157 out[i].ChiSqAve = NAN;158 out[i].ChiSqPM = NAN;159 out[i].ChiSqPar = NAN;160 out[i].Tmean = 0;161 out[i].Trange = 0;162 out[i].Npos = 0.0;163 out[i].extID = 0;164 165 // added in PS1_V3166 out[i].photFlagsUpper = 0;167 out[i].photFlagsLower = 0;168 169 // added for PS1_V4 (Xp dropped in V4 onward, was not really used anyway)170 out[i].psfQF = NAN;171 out[i].psfQFperf = NAN;172 out[i].stargal = NAN;173 134 } 174 135 return (out); … … 219 180 220 181 for (i = 0; i < Nvalues; i++) { 182 dvo_secfilt_init (&out[i]); 183 221 184 out[i].M = in[i].M; 222 185 out[i].dM = in[i].dM; … … 224 187 out[i].Ncode = in[i].Ncode; 225 188 out[i].Nused = in[i].Nused; 226 227 // changed or added for PS1_V1228 out[i].M_20 = 0;229 out[i].M_80 = 0;230 231 // changed or added for PS1_V2232 out[i].flags = 0;233 234 // added in PS1_V3235 out[i].Map = 0;236 out[i].Mstdev = 0;237 out[i].ubercalDist = 0;238 239 // added for PS1_V4240 out[i].Mkron = NAN;241 out[i].dMkron = NAN;242 out[i].FluxPSF = NAN;243 out[i].dFluxPSF = NAN;244 out[i].FluxKron = NAN;245 out[i].dFluxKron = NAN;246 out[i].stackID = 0;247 189 } 248 190 return (out); -
branches/czw_branch/20120906/Ohana/src/libdvo/src/dvo_photcode_ops.c
r34260 r34772 664 664 665 665 Ns = photcodes[0].hashNsec[code[0].code]; 666 ID = (Ns == -1) ? 0 : secfilt[Ns].stack ID;666 ID = (Ns == -1) ? 0 : secfilt[Ns].stackDetectID; 667 667 return (ID); 668 668 } -
branches/czw_branch/20120906/Ohana/src/libdvo/src/fits_db.c
r29938 r34772 159 159 make_backup (db[0].filename); 160 160 Fseek (db[0].f, 0, SEEK_SET); 161 162 int fd = fileno (db->f); 163 if (ftruncate (fd, 0)) { 164 perror ("gfits_db_save: "); 165 return (FALSE); 166 } 161 167 162 168 if (!gfits_fwrite_header (db[0].f, &db[0].header)) { -
branches/czw_branch/20120906/Ohana/src/libfits/header/F_create_H.c
r28241 r34772 26 26 } 27 27 28 gfits_modify (header, "PCOUNT", "%d", 1, header[0].pcount);29 gfits_modify (header, "GCOUNT", "%d", 1, header[0].gcount);28 // gfits_modify (header, "PCOUNT", "%d", 1, header[0].pcount); 29 // gfits_modify (header, "GCOUNT", "%d", 1, header[0].gcount); 30 30 gfits_modify (header, "BSCALE", "%lf", 1, header[0].bscale); 31 31 gfits_modify (header, "BZERO", "%lf", 1, header[0].bzero); -
branches/czw_branch/20120906/Ohana/src/libfits/header/F_modify.c
r33648 r34772 68 68 if (!strcmp (mode, "%jd")) { snprintf (string, 81, "%-8s= %20jd / %-s ", field, va_arg (argp, intmax_t), comment); goto found_it; } 69 69 70 /* string value. Quotes must be at least 18 chars apart */70 /* string value. Quotes must be at least 8 chars apart */ 71 71 if (!strcmp (mode, "%s")) { 72 72 char *ptr = va_arg (argp, char *); 73 73 if (!ptr) goto invalid; 74 74 strncpy (data, ptr, 68); 75 snprintf (string, 81, "%-8s= '%- 18s' / %-s ", field, data, comment);75 snprintf (string, 81, "%-8s= '%-8s' / %-s ", field, data, comment); 76 76 goto found_it; 77 77 } -
branches/czw_branch/20120906/Ohana/src/libfits/header/F_print.c
r33648 r34772 63 63 if (!strcmp (mode, "%jd")) { snprintf (string, 81, "%-8s= %20jd / %46s ", field, va_arg (argp, intmax_t), blank); goto found_it; } 64 64 65 /* string value. Quotes must be at least 18 chars apart. Longer lines will this should be fixed to allow arbitrary string lengths, up to 69 chars */65 /* string value. Quotes must be at least 8 chars apart. Longer lines will this should be fixed to allow arbitrary string lengths, up to 69 chars */ 66 66 if (!strcmp (mode, "%s")) { 67 67 char *ptr = va_arg (argp, char *); … … 69 69 strcpy (line, ptr); 70 70 line[68] = 0; 71 snprintf (string, 81, "%-8s= '%- 18s' / %46s ", field, line, blank);71 snprintf (string, 81, "%-8s= '%-8s' / %46s ", field, line, blank); 72 72 goto found_it; 73 73 } -
branches/czw_branch/20120906/Ohana/src/libkapa/src/IOfuncs.c
r27588 r34772 75 75 if (status != 16) { 76 76 fprintf (stderr, "dropped message length\n"); 77 // XXX if this happens, I need to give up and return FALSE 78 // XXX BUT: I need to think a bit more about hand-shaking. 77 79 } 78 80 if (DEBUG) fprintf (stderr, "recv buffer: %s\n", buffer); -
branches/czw_branch/20120906/Ohana/src/libohana/include/ohana.h
r34260 r34772 256 256 int iparse PROTO((int *X, int NX, char *line)); 257 257 int iparse_csv PROTO((int *X, int NX, char *line)); 258 int charparse_csv PROTO((char *X, int NX, char *line)); 259 int charparse PROTO((char *X, int NX, char *line)); 258 260 int tparse PROTO((time_t *X, int NX, char *line)); 259 261 int tparse_csv PROTO((time_t *X, int NX, char *line)); -
branches/czw_branch/20120906/Ohana/src/libohana/src
- Property svn:mergeinfo set to
-
branches/czw_branch/20120906/Ohana/src/libohana/src/string.c
r33963 r34772 130 130 status = EOF + 1; 131 131 132 for (i = 0, c = 0; (c != '\n') && ( status != EOF); i++) {132 for (i = 0, c = 0; (c != '\n') && (c != '\r') && (status != EOF); i++) { 133 133 status = fscanf (f, "%c", &c); 134 134 line[i] = c; … … 154 154 status = EOF + 1; 155 155 156 for (i = 0, c = 0; (c != '\n') && ( status != EOF) && (i < maxlen); i++) {156 for (i = 0, c = 0; (c != '\n') && (c != '\r') && (status != EOF) && (i < maxlen); i++) { 157 157 status = fscanf (f, "%c", &c); 158 158 line[i] = c; … … 264 264 if (ptr == word) return (FALSE); 265 265 if (word[0] == '-') return (-1); 266 return (1); 267 } 268 269 int charparse (char *X, int NX, char *line) { 270 271 int i; 272 char *word; 273 274 word = line; 275 for (i = 0; i < NX - 1; i++) 276 word = _parse_nextword (word); 277 278 *X = word[0]; 279 return (1); 280 } 281 282 int charparse_csv (char *X, int NX, char *line) { 283 284 int i; 285 char *word; 286 287 word = line; 288 for (i = 0; i < NX - 1; i++) 289 word = _parse_nextword_csv (word); 290 291 if (word[0] == '"') word[0] = word[1]; 292 if (word[0] == ',') { 293 *X = 0; 294 return 1; 295 } 296 297 *X = word[0]; 266 298 return (1); 267 299 } -
branches/czw_branch/20120906/Ohana/src/markrock/src/ConfigInit.c
r25757 r34772 5 5 char *config, *file; 6 6 char CatdirPhotcodeFile[256]; 7 char MasterPhotcodeFile[256];8 7 9 8 /*** load configuration info ***/ … … 21 20 ScanConfig (config, "CATMODE", "%s", 0, CATMODE); 22 21 ScanConfig (config, "CATFORMAT", "%s", 0, CATFORMAT); 23 ScanConfig (config, "PHOTCODE_FILE", "%s", 0, MasterPhotcodeFile);24 22 25 23 /* unique to markrock */ … … 44 42 /* XXX this does not yet write out the master photcode table */ 45 43 sprintf (CatdirPhotcodeFile, "%s/Photcodes.dat", CATDIR); 46 if (!LoadPhotcodes (CatdirPhotcodeFile, MasterPhotcodeFile, TRUE)) {47 fprintf (stderr, "error loading photcode table %s or master file %s\n", CatdirPhotcodeFile, MasterPhotcodeFile);44 if (!LoadPhotcodes (CatdirPhotcodeFile, NULL, FALSE)) { 45 fprintf (stderr, "error loading photcode table %s\n", CatdirPhotcodeFile); 48 46 exit (1); 49 47 } -
branches/czw_branch/20120906/Ohana/src/markstar/src/ConfigInit.c
r25757 r34772 5 5 char *config, *file; 6 6 char CatdirPhotcodeFile[256]; 7 char MasterPhotcodeFile[256];8 7 9 8 /*** load configuration info ***/ … … 21 20 ScanConfig (config, "CATMODE", "%s", 0, CATMODE); 22 21 ScanConfig (config, "CATFORMAT", "%s", 0, CATFORMAT); 23 ScanConfig (config, "PHOTCODE_FILE", "%s", 0, MasterPhotcodeFile);24 22 25 23 sprintf (ImageCat, "%s/Images.dat", CATDIR); … … 54 52 /* XXX this does not yet write out the master photcode table */ 55 53 sprintf (CatdirPhotcodeFile, "%s/Photcodes.dat", CATDIR); 56 if (!LoadPhotcodes (CatdirPhotcodeFile, MasterPhotcodeFile, TRUE)) {57 fprintf (stderr, "error loading photcode table %s or master file %s\n", CatdirPhotcodeFile, MasterPhotcodeFile);54 if (!LoadPhotcodes (CatdirPhotcodeFile, NULL, FALSE)) { 55 fprintf (stderr, "error loading photcode table %s\n", CatdirPhotcodeFile); 58 56 exit (1); 59 57 } -
branches/czw_branch/20120906/Ohana/src/opihi
- Property svn:mergeinfo deleted
-
branches/czw_branch/20120906/Ohana/src/opihi/cmd.astro
- Property svn:mergeinfo changed
/branches/eam_branches/ipp-20120905/Ohana/src/opihi/cmd.astro (added) merged: 34428,34468,34490,34521,34569,34575,34618,34654,34735,34747
- Property svn:mergeinfo changed
-
branches/czw_branch/20120906/Ohana/src/opihi/cmd.astro/cgrid.c
r30611 r34772 279 279 graphmode.ptype = 100; /* connect a pair */ 280 280 graphmode.etype = 0; 281 PlotVectorPair (kapa, &Xvec, &Yvec, &graphmode);281 PlotVectorPair (kapa, &Xvec, &Yvec, NULL, &graphmode); 282 282 283 283 free (Xvec.elements.Ptr); -
branches/czw_branch/20120906/Ohana/src/opihi/cmd.astro/cplot.c
r21153 r34772 3 3 int cplot (int argc, char **argv) { 4 4 5 double ra_prev = 0; 5 6 int i, kapa, Npts, status, leftside; 6 7 opihi_flt *x, *y, *r, *d, Rmin, Rmax, Rmid; … … 41 42 Npts = 0; 42 43 for (i = 0; i < Xvec.Nelements; i++, r++, d++) { 43 *r= ohana_normalize_angle (*r);44 while ( *r < Rmin) *r+= 360.0;45 while ( *r > Rmax) *r-= 360.0;44 double ra = ohana_normalize_angle (*r); 45 while (ra < Rmin) ra += 360.0; 46 while (ra > Rmax) ra -= 360.0; 46 47 47 48 // for pair-by-pair connections, check on second point if we straddle the back midline 48 if ((graphmode.ptype == 100) && (i % 2)) { 49 leftside = (r[-1] < Rmid); // if first of the pair is left, second must be as well 50 if ( leftside && (r[0] > Rmid + 90)) { r[0] -= 360.0; } 51 if (!leftside && (r[0] < Rmid - 90)) { r[0] += 360.0; } 49 if (graphmode.ptype == 100) { 50 if (i % 2) { 51 leftside = (ra_prev < Rmid); // if first of the pair is left, second must be as well 52 if ( leftside && (ra > Rmid + 90)) { ra -= 360.0; } 53 if (!leftside && (ra < Rmid - 90)) { ra += 360.0; } 54 } else { 55 ra_prev = ra; 56 } 52 57 } 53 status = RD_to_XY (x, y, *r, *d, &graphmode.coords);58 status = RD_to_XY (x, y, ra, *d, &graphmode.coords); 54 59 55 60 // if we fail on one of the points, drop the corresponding pair … … 78 83 79 84 graphmode.etype = 0; 80 PlotVectorPair (kapa, &Xvec, &Yvec, &graphmode);85 PlotVectorPair (kapa, &Xvec, &Yvec, NULL, &graphmode); 81 86 82 87 free (Xvec.elements.Ptr); -
branches/czw_branch/20120906/Ohana/src/opihi/cmd.astro/czplot.c
r31667 r34772 76 76 graphmode.size = -1; /* point size determined by Zvec */ 77 77 graphmode.etype = 0; 78 PlotVectorTriplet (kapa, &Xvec, &Yvec, &Zvec, &graphmode);78 PlotVectorTriplet (kapa, &Xvec, &Yvec, &Zvec, NULL, &graphmode); 79 79 80 80 free (Xvec.elements.Flt); -
branches/czw_branch/20120906/Ohana/src/opihi/cmd.data
- Property svn:mergeinfo set to
-
branches/czw_branch/20120906/Ohana/src/opihi/cmd.data/Makefile
r33662 r34772 114 114 $(SRC)/shift.$(ARCH).o \ 115 115 $(SRC)/sort.$(ARCH).o \ 116 $(SRC)/spline_apply.$(ARCH).o \ 117 $(SRC)/spline_construct.$(ARCH).o \ 116 $(SRC)/spline.$(ARCH).o \ 117 $(SRC)/spline_commands.$(ARCH).o \ 118 $(SRC)/imspline_apply.$(ARCH).o \ 119 $(SRC)/imspline_construct.$(ARCH).o \ 118 120 $(SRC)/imstats.$(ARCH).o \ 119 121 $(SRC)/style.$(ARCH).o \ -
branches/czw_branch/20120906/Ohana/src/opihi/cmd.data/box.c
r27790 r34772 149 149 usage: 150 150 gprint (GP_ERR, "USAGE: box [-ticks NNNN] [-axis NNNN] [-labels NNNN]\n"); 151 152 gprint (GP_ERR, " additional options:\n"); 153 gprint (GP_ERR, " -fn (font) (size) : set font used for box\n"); 154 gprint (GP_ERR, " -lw (weight) : set box line weight\n"); 155 gprint (GP_ERR, " -c (color) : set box color\n"); 156 gprint (GP_ERR, " \n"); 157 gprint (GP_ERR, " for the descriptions below:\n"); 158 gprint (GP_ERR, " -x refers to the bottom x-axis, \n"); 159 gprint (GP_ERR, " -y refers to the left y-axis, \n"); 160 gprint (GP_ERR, " +x refers to the top x-axis, \n"); 161 gprint (GP_ERR, " +y refers to the right y-axis, \n"); 162 gprint (GP_ERR, " \n"); 163 gprint (GP_ERR, " -ticks [NNNN] : turn on (1), off (0), or use default for ticks\n"); 164 gprint (GP_ERR, " -labels [NNNN] : turn on (1), off (0), or use default for label\n"); 165 gprint (GP_ERR, " -axis [NNNN] : turn on (1), off (0), or use default for axis\n"); 166 gprint (GP_ERR, " the order for the NNNN values in the above options is: -x, -y, +x, +y\n"); 167 gprint (GP_ERR, " \n"); 168 gprint (GP_ERR, " -tickpad : set the spacing between the ticks and the tick text \n"); 169 gprint (GP_ERR, " \n"); 170 gprint (GP_ERR, " the following set the spacing between the label and the given axis:\n"); 171 gprint (GP_ERR, " -labelpadx, -labelpady, +labelpadx, +labelpady\n"); 172 gprint (GP_ERR, " \n"); 173 gprint (GP_ERR, " -pad : set the spacing between the plot section boundary and the axes\n"); 174 gprint (GP_ERR, " alternatively, set each axis independently with:\n"); 175 gprint (GP_ERR, " -xpad, -ypad, +xpad, +ypad\n"); 176 151 177 return (FALSE); 152 178 } -
branches/czw_branch/20120906/Ohana/src/opihi/cmd.data/dbconnect.c
r27435 r34772 33 33 password[i] = 0; 34 34 # endif 35 36 // XXX do I need to call mysql_library_init()? 35 37 36 38 mysql_init (&mysql); -
branches/czw_branch/20120906/Ohana/src/opihi/cmd.data/dbselect.c
r20936 r34772 61 61 ALLOCATE (vec, Vector *, Ncols); 62 62 for (i = 0; i < Ncols; i++) { 63 if ((vec[i] = SelectVector (fields[i].name, ANYVECTOR, TRUE)) == NULL) { 64 gprint (GP_ERR, "trouble creating vector named %s\n", fields[i].name); 63 char *name = fields[i].name ? fields[i].name : fields[i].org_name; 64 if ((vec[i] = SelectVector (name, ANYVECTOR, TRUE)) == NULL) { 65 gprint (GP_ERR, "trouble creating vector named %s\n", name); 65 66 free (query); 66 67 free (vec); -
branches/czw_branch/20120906/Ohana/src/opihi/cmd.data/grid.c
r26258 r34772 178 178 graphmode.ptype = 100; /* connect a pair */ 179 179 graphmode.etype = 0; 180 PlotVectorPair (kapa, &Xvec, &Yvec, &graphmode);180 PlotVectorPair (kapa, &Xvec, &Yvec, NULL, &graphmode); 181 181 182 182 free (Xvec.elements.Flt); -
branches/czw_branch/20120906/Ohana/src/opihi/cmd.data/init.c
r33662 r34772 102 102 int shift PROTO((int, char **)); 103 103 int sort_vectors PROTO((int, char **)); 104 int spline_apply_cmd PROTO((int, char **)); 105 int spline_construct_cmd PROTO((int, char **)); 104 int spline_command PROTO((int, char **)); 105 int imspline_apply PROTO((int, char **)); 106 int imspline_construct PROTO((int, char **)); 106 107 int stats PROTO((int, char **)); 107 108 int imstats PROTO((int, char **)); … … 254 255 {1, "shift", shift, "shift data in an image"}, 255 256 {1, "sort", sort_vectors, "sort list of vectors"}, 256 {1, "spline.apply", spline_apply_cmd, "apply spline fit to generate an image"}, 257 {1, "spline.const", spline_construct_cmd, "create spline 2nd deriv. terms"}, 257 {1, "spline", spline_command, "shift data in an image"}, 258 {1, "imspline.apply", imspline_apply, "apply spline fit to generate an image"}, 259 {1, "imspline.const", imspline_construct, "create spline 2nd deriv. terms"}, 258 260 {1, "stats", imstats, "statistics on a portion of an image"}, 259 261 {1, "style", style, "set the style for graph plots"}, -
branches/czw_branch/20120906/Ohana/src/opihi/cmd.data/plot.c
r32346 r34772 3 3 int plot (int argc, char **argv) { 4 4 5 int kapa, N, Npts; 5 char *out; 6 int kapa, N, Npts, valid, size, i; 6 7 Graphdata graphmode; 7 8 Vector *xvec, *yvec, *dxmvec, *dxpvec, *dymvec, *dypvec; … … 32 33 } 33 34 34 if (argc != 3) { 35 valid = (argc == 3); 36 valid |= (argc > 4) && !strcmp (argv[3], "where"); 37 if (!valid) { 35 38 gprint (GP_ERR, "USAGE: plot <x> <y> [style]\n"); 39 gprint (GP_ERR, " OR: plot <x> <y> [style] where (condition)\n"); 36 40 return (FALSE); 41 } 42 43 // tvec is used for logical test (truth vector) 44 Vector *tvec = NULL; 45 char *mask = NULL; 46 if (argc > 4) { 47 out = dvomath (argc - 4, &argv[4], &size, 1); 48 if (out == NULL) { 49 print_error (); 50 return FALSE; 51 } 52 if ((tvec = SelectVector (out, OLDVECTOR, TRUE)) == NULL) { 53 gprint (GP_ERR, " invalid logic result\n"); 54 DeleteNamedVector (out); 55 free (out); 56 return (FALSE); 57 } 37 58 } 38 59 … … 53 74 return (FALSE); 54 75 } 76 if (tvec && tvec[0].Nelements != yvec[0].Nelements) { 77 gprint (GP_ERR, "logic test vector not the same length as data vectors\n"); 78 return (FALSE); 79 } 55 80 if (dypvec && (dypvec->Nelements != xvec->Nelements)) goto mismatch; 56 81 if (dymvec && (dymvec->Nelements != xvec->Nelements)) goto mismatch; … … 59 84 60 85 Npts = xvec[0].Nelements; 61 if (Npts == 0) return (TRUE); 86 if (Npts == 0) { 87 if (tvec) DeleteVector (tvec); 88 return (TRUE); 89 } 90 91 if (tvec) { 92 Npts = 0; 93 ALLOCATE (mask, char, tvec->Nelements); 94 for (i = 0; i < tvec->Nelements; i++) { 95 mask[i] = (tvec->type == OPIHI_FLT) ? (tvec->elements.Flt[i] == 0.0) : (tvec->elements.Int[i] == 0.0); 96 if (!mask[i]) Npts ++; 97 } 98 if (Npts == 0) { 99 DeleteVector (tvec); 100 free (mask); 101 return TRUE; 102 } 103 } 62 104 63 105 if (!KapaPrepPlot (kapa, Npts, &graphmode)) return (FALSE); 64 106 65 PlotVectorSingle (kapa, xvec, "x");66 PlotVectorSingle (kapa, yvec, "y");107 PlotVectorSingle (kapa, xvec, mask, "x"); 108 PlotVectorSingle (kapa, yvec, mask, "y"); 67 109 if (graphmode.etype & 0x01) { 68 PlotVectorSingle (kapa, dymvec, "dym");69 PlotVectorSingle (kapa, dypvec, "dyp");110 PlotVectorSingle (kapa, dymvec, mask, "dym"); 111 PlotVectorSingle (kapa, dypvec, mask, "dyp"); 70 112 } 71 113 if (graphmode.etype & 0x02) { 72 PlotVectorSingle (kapa, dxmvec, "dxm"); 73 PlotVectorSingle (kapa, dxpvec, "dxp"); 114 PlotVectorSingle (kapa, dxmvec, mask, "dxm"); 115 PlotVectorSingle (kapa, dxpvec, mask, "dxp"); 116 } 117 118 if (tvec) { 119 free (mask); 120 DeleteVector (tvec); 74 121 } 75 122 return (TRUE); -
branches/czw_branch/20120906/Ohana/src/opihi/cmd.data/read_vectors.c
r33662 r34772 22 22 23 23 // vector types 24 enum {COLTYPE_NONE, COLTYPE_FLT, COLTYPE_INT, COLTYPE_TIME };24 enum {COLTYPE_NONE, COLTYPE_FLT, COLTYPE_INT, COLTYPE_TIME, COLTYPE_CHAR}; 25 25 26 26 int read_vectors (int argc, char **argv) { … … 30 30 int i, j, Nskip, Narg, Nvec, *col, IsCSV, VERBOSE; 31 31 int Nbytes, Nstart, NELEM, Nelem, nread, *coltype; 32 char *colstr, *c0, *c1, * buffer, *extname;32 char *colstr, *c0, *c1, *extname; 33 33 Vector **vec; 34 35 char *buffer = NULL; 34 36 35 37 /* auto-sense table type */ … … 101 103 if (!strcasecmp(ptr, "float")) { coltype[i] = COLTYPE_FLT; } 102 104 if (!strcasecmp(ptr, "int")) { coltype[i] = COLTYPE_INT; } 105 if (!strcasecmp(ptr, "char")) { coltype[i] = COLTYPE_CHAR; } 103 106 if (!strcasecmp(ptr, "time")) { coltype[i] = COLTYPE_TIME; } 104 107 if (!coltype[i]) goto bad_colname; … … 143 146 NELEM = 1000; 144 147 for (i = 0; i < Nvec; i++) { 145 if ( coltype[i] == COLTYPE_INT) {148 if ((coltype[i] == COLTYPE_INT) || (coltype[i] == COLTYPE_CHAR)) { 146 149 ResetVector (vec[i], OPIHI_INT, NELEM); 147 150 } else { … … 154 157 bzero (buffer, 0x10001); 155 158 for (i = 0; i < Nskip; i++) { 156 scan_line (f, buffer); 159 if (scan_line_maxlen (f, buffer, 0x10000) == EOF) { 160 gprint (GP_ERR, "problem reading file %s\n", filename); 161 free (vec); 162 free (col); 163 return FALSE; 164 } 157 165 } 158 166 … … 178 186 while (bufferStatus) { 179 187 c1 = strchr (c0, '\n'); // find the end of this current line 188 if (!c1) { 189 c1 = strchr (c0, '\r'); // try \r for non-UNIX files (what do we do about a Mac? \n\r?) 190 } 180 191 if (c1 == (char *) NULL) { 181 192 Nstart = strlen (c0); … … 195 206 for (i = 0; i < Nvec; i++) { 196 207 int ivalue; 208 char cvalue; 197 209 double dvalue; 198 210 time_t tvalue; … … 203 215 readStatus = IsCSV ? iparse_csv (&ivalue, col[i], c0) : iparse (&ivalue, col[i], c0); 204 216 vec[i][0].elements.Int[Nelem] = readStatus ? ivalue : 0; 217 break; 218 case COLTYPE_CHAR: 219 readStatus = IsCSV ? charparse_csv (&cvalue, col[i], c0) : charparse (&cvalue, col[i], c0); 220 vec[i][0].elements.Int[Nelem] = readStatus ? cvalue : 0; 205 221 break; 206 222 case COLTYPE_FLT: … … 254 270 free (vec); 255 271 free (col); 256 free (buffer);272 if (buffer) free (buffer); 257 273 return (TRUE); 258 274 -
branches/czw_branch/20120906/Ohana/src/opihi/cmd.data/reindex.c
r33662 r34772 5 5 int reindex (int argc, char **argv) { 6 6 7 int i, N pts, Nmax;7 int i, Nmax, N; 8 8 Vector *ivec, *ovec, *xvec; 9 9 10 10 ivec = ovec = xvec = NULL; 11 Npts = 0; 11 int Npts = 0; 12 13 int KEEP_UNMATCH = FALSE; 14 if ((N = get_argument (argc, argv, "-keep-unmatched"))) { 15 remove_argument (N, &argc, argv); 16 KEEP_UNMATCH = TRUE; 17 } 12 18 13 19 if (argc != 6) goto usage; … … 22 28 23 29 // ovec matches ivec in type and xvec in size (xvec need not have all ivec elements, and may have duplicates 30 int NPTS = xvec[0].Nelements; 24 31 ResetVector (ovec, ivec->type, xvec[0].Nelements); 25 32 … … 31 38 opihi_int *vx = xvec[0].elements.Int; 32 39 for (Npts = i = 0; i < xvec[0].Nelements; i++, vx++) { 33 if (*vx == -1) continue; 34 if (*vx < 0) ESCAPE("unexpected value in index: %d (%d)\n", *vx, i); 40 if (Npts >= NPTS) { 41 NPTS += 2000; 42 REALLOCATE (ovec[0].elements.Flt, opihi_flt, NPTS); 43 } 44 if (*vx < 0) { 45 if (KEEP_UNMATCH) { 46 ovec[0].elements.Flt[Npts] = NAN; 47 Npts++; 48 } 49 continue; 50 } 35 51 if (*vx > Nmax) ESCAPE("unexpected value in index: %d (%d)\n", *vx, i); 36 52 ovec[0].elements.Flt[Npts] = vi[*vx]; … … 42 58 opihi_int *vx = xvec[0].elements.Int; 43 59 for (Npts = i = 0; i < xvec[0].Nelements; i++, vx++) { 44 if (*vx == -1) continue; 45 if (*vx < 0) ESCAPE("unexpected value in index: %d (%d)\n", *vx, i); 60 if (Npts >= NPTS) { 61 NPTS += 2000; 62 REALLOCATE (ovec[0].elements.Int, opihi_int, NPTS); 63 } 64 if (*vx < 0) { 65 if (KEEP_UNMATCH) { 66 ovec[0].elements.Flt[Npts] = -1; 67 Npts++; 68 } 69 continue; 70 } 46 71 if (*vx > Nmax) ESCAPE("unexpected value in index: %d (%d)\n", *vx, i); 47 72 ovec[0].elements.Int[Npts] = vi[*vx]; … … 60 85 usage: 61 86 gprint (GP_ERR, "USAGE: reindex (out) = (in) using (index)\n"); 62 gprint (GP_ERR, " creates a new vectors (out) from (in) based on sequence in (index)\n"); 87 gprint (GP_ERR, " Creates a new vector (out) from (in) based on sequence in (index)\n"); 88 gprint (GP_ERR, " output[i] = input[index[i]]\n"); 89 gprint (GP_ERR, " If -keep-unmatched is provided, elements of index with negative values will be set to NaN / -1,\n"); 90 gprint (GP_ERR, " otherwise they will be skipped in the output.\n"); 91 gprint (GP_ERR, " The output vector has the type of the input vector and the length of the index (if -keep-unmatched).\n"); 92 gprint (GP_ERR, " The index vector may have duplicates\n"); 63 93 return (FALSE); 64 94 } -
branches/czw_branch/20120906/Ohana/src/opihi/cmd.data/subset.c
r30610 r34772 13 13 Npts = 0; 14 14 15 if (argc < 6) { 16 gprint (GP_ERR, "SYNTAX: subset vec = vec [if/where] (logic expression)\n"); 17 return (FALSE); 18 } 19 15 20 valid = TRUE; 16 valid &= (argc >= 6);17 21 valid &= !strcmp(argv[2], "="); 18 22 valid &= !strcmp(argv[4], "if") || !strcmp (argv[4], "where"); -
branches/czw_branch/20120906/Ohana/src/opihi/cmd.data/write_vectors.c
r33963 r34772 99 99 } 100 100 101 /* open file for out uput */101 /* open file for output */ 102 102 if (append) { 103 103 f = fopen (argv[1], "a"); -
branches/czw_branch/20120906/Ohana/src/opihi/cmd.data/zplot.c
r31667 r34772 3 3 int zplot (int argc, char **argv) { 4 4 5 int i, kapa; 5 char *outname = NULL; 6 int i, kapa, valid, size; 6 7 opihi_flt *out; 7 8 double min, range; … … 11 12 if (!style_args (&graphmode, &argc, argv, &kapa)) return (FALSE); 12 13 13 if (argc != 6) { 14 valid = (argc == 6); 15 valid |= (argc > 7) && !strcmp (argv[6], "where"); 16 if (!valid) { 14 17 gprint (GP_ERR, "USAGE: zplot <x> <y> <z> min max\n"); 18 gprint (GP_ERR, " OR: zplot <x> <y> <z> min max where (condition)\n"); 15 19 return (FALSE); 16 20 } … … 18 22 min = atof(argv[4]); 19 23 range = atof(argv[5]) - min; 24 25 // tvec is used for logical test (truth vector) 26 Vector *tvec = NULL; 27 char *mask = NULL; 28 if (argc > 7) { 29 outname = dvomath (argc - 7, &argv[7], &size, 1); 30 if (outname == NULL) { 31 print_error (); 32 return FALSE; 33 } 34 if ((tvec = SelectVector (outname, OLDVECTOR, TRUE)) == NULL) { 35 gprint (GP_ERR, " invalid logic result\n"); 36 DeleteNamedVector (outname); 37 free (outname); 38 return (FALSE); 39 } 40 } 20 41 21 42 /* find vectors */ … … 29 50 if (xvec[0].Nelements != zvec[0].Nelements) { 30 51 gprint (GP_ERR, "vectors %s and %s not the same length\n", argv[1], argv[3]); 52 return (FALSE); 53 } 54 if (tvec && tvec[0].Nelements != yvec[0].Nelements) { 55 gprint (GP_ERR, "logic test vector not the same length as data vectors\n"); 31 56 return (FALSE); 32 57 } … … 46 71 } 47 72 73 if (tvec) { 74 ALLOCATE (mask, char, tvec->Nelements); 75 for (i = 0; i < tvec->Nelements; i++) { 76 mask[i] = (tvec->type == OPIHI_FLT) ? (tvec->elements.Flt[i] == 0.0) : (tvec->elements.Int[i] == 0.0); 77 } 78 } 79 48 80 /* point size determined by Zvec */ 49 81 graphmode.style = 2; /* plot points */ 50 82 graphmode.size = -1; /* point size determined by Zvec */ 51 83 graphmode.etype = 0; /* no errorbars */ 52 PlotVectorTriplet (kapa, xvec, yvec, &Zvec, &graphmode);84 PlotVectorTriplet (kapa, xvec, yvec, &Zvec, mask, &graphmode); 53 85 54 86 free (Zvec.elements.Ptr); 87 if (mask) free (mask); 88 DeleteNamedVector (outname); 55 89 56 90 return (TRUE); … … 60 94 int zcplot (int argc, char **argv) { 61 95 62 int i, kapa; 96 char *outname = NULL; 97 int i, kapa, valid, size; 63 98 opihi_flt *out; 64 99 double min, range; … … 68 103 if (!style_args (&graphmode, &argc, argv, &kapa)) return (FALSE); 69 104 70 if (argc != 6) { 71 gprint (GP_ERR, "USAGE: zplot <x> <y> <z> min max\n"); 105 valid = (argc == 6); 106 valid |= (argc > 7) && !strcmp (argv[6], "where"); 107 if (!valid) { 108 gprint (GP_ERR, "USAGE: zcplot <x> <y> <z> min max\n"); 109 gprint (GP_ERR, " OR: zcplot <x> <y> <z> min max where (condition)\n"); 72 110 return (FALSE); 73 111 } … … 75 113 min = atof(argv[4]); 76 114 range = atof(argv[5]) - min; 115 116 // tvec is used for logical test (truth vector) 117 Vector *tvec = NULL; 118 char *mask = NULL; 119 if (argc > 7) { 120 outname = dvomath (argc - 7, &argv[7], &size, 1); 121 if (outname == NULL) { 122 print_error (); 123 return FALSE; 124 } 125 if ((tvec = SelectVector (outname, OLDVECTOR, TRUE)) == NULL) { 126 gprint (GP_ERR, " invalid logic result\n"); 127 DeleteNamedVector (outname); 128 free (outname); 129 return (FALSE); 130 } 131 } 77 132 78 133 /* find vectors */ … … 86 141 if (xvec[0].Nelements != zvec[0].Nelements) { 87 142 gprint (GP_ERR, "vectors %s and %s not the same length\n", argv[1], argv[3]); 143 return (FALSE); 144 } 145 if (tvec && tvec[0].Nelements != yvec[0].Nelements) { 146 gprint (GP_ERR, "logic test vector not the same length as data vectors\n"); 88 147 return (FALSE); 89 148 } … … 103 162 } 104 163 164 if (tvec) { 165 ALLOCATE (mask, char, tvec->Nelements); 166 for (i = 0; i < tvec->Nelements; i++) { 167 mask[i] = (tvec->type == OPIHI_FLT) ? (tvec->elements.Flt[i] == 0.0) : (tvec->elements.Int[i] == 0.0); 168 } 169 } 170 105 171 /* point size determined by Zvec */ 106 172 graphmode.style = 2; /* plot points */ 107 173 graphmode.color = -1; /* point color determined by Zvec */ 108 174 graphmode.etype = 0; /* no errorbars */ 109 PlotVectorTriplet (kapa, xvec, yvec, &Zvec, &graphmode);175 PlotVectorTriplet (kapa, xvec, yvec, &Zvec, mask, &graphmode); 110 176 111 177 free (Zvec.elements.Ptr); 178 if (mask) free (mask); 179 DeleteNamedVector (outname); 112 180 113 181 return (TRUE); -
branches/czw_branch/20120906/Ohana/src/opihi/dvo/Makefile
r33662 r34772 67 67 $(SRC)/lightcurve.$(ARCH).o \ 68 68 $(SRC)/mextract.$(ARCH).o \ 69 $(SRC)/mmatch.$(ARCH).o \ 69 70 $(SRC)/mmextract.$(ARCH).o \ 70 71 $(SRC)/objectcoverage.$(ARCH).o \ -
branches/czw_branch/20120906/Ohana/src/opihi/dvo/avextract.c
r34405 r34772 137 137 // this does all the work of re-packaging the command, calling it on the remote machines, then loading in the results 138 138 if (PARALLEL && !HOST_ID) { 139 int status = HostTableParallelOps (argc, argv, RESULT_FILE, 0, VERBOSE);139 int status = HostTableParallelOps (argc, argv, RESULT_FILE, TRUE, 0, VERBOSE); 140 140 141 141 dbFreeFields (fields, Nfields); … … 325 325 gprint (GP_ERR, " <photcode>:nphot : number of measurements used for average magnitude in this photcode\n"); 326 326 327 // gprint (GP_ERR, " <photcode>:ap : catalog aperture magnitude for photcode\n"); 328 // gprint (GP_ERR, " <photcode>:aper : catalog aperture magnitude for photcode\n"); 329 // gprint (GP_ERR, " <photcode>:aveerr : average error (stdev)\n"); 330 // gprint (GP_ERR, " <photcode>:aperinst : aperture flux\n"); 331 // gprint (GP_ERR, " <photcode>:aper_inst : aperture flux\n"); 332 333 gprint (GP_ERR, " <photcode>:kron : kron flux\n"); 334 // gprint (GP_ERR, " <photcode>:kronerr : kron error\n"); 335 gprint (GP_ERR, " <photcode>:photflags : photometry flags for measurements\n"); 336 gprint (GP_ERR, " <photcode>:flags : photometry flags for measurements\n"); 337 gprint (GP_ERR, " <photcode>:stdev : standard deviation of measurements\n"); 338 gprint (GP_ERR, " <photcode>:20 : 20 percentile psf mag\n"); 339 gprint (GP_ERR, " <photcode>:80 : 80 percentile psf mag\n"); 340 gprint (GP_ERR, " <photcode>:ucdist : distance to ubercalibrated exposure (in exposure overlaps)\n"); 341 gprint (GP_ERR, " <photcode>:stackDetectID : PSPS ID for stack detection\n"); 342 gprint (GP_ERR, " <photcode>:fluxpsf : psf flux\n"); 343 gprint (GP_ERR, " <photcode>:fluxpsferr : psf flux error\n"); 344 gprint (GP_ERR, " <photcode>:fluxkron : kron flux\n"); 345 gprint (GP_ERR, " <photcode>:fluxkronerr : kron flux error\n"); 346 327 347 // gprint (GP_ERR, " type : dophot type (unused)\n"); 328 348 // gprint (GP_ERR, " typefrac : dophot type fraction (unused)\n"); -
branches/czw_branch/20120906/Ohana/src/opihi/dvo/avmatch.c
r34405 r34772 95 95 96 96 // I need to pass the RA & DEC vectors to the remote clients... 97 int status = HostTableParallelOps (argc, argv, RESULT_FILE, RAvec->Nelements, VERBOSE);97 int status = HostTableParallelOps (argc, argv, RESULT_FILE, TRUE, RAvec->Nelements, VERBOSE); 98 98 if (vec) free (vec); 99 99 … … 203 203 Npts = j; 204 204 205 if (Ncat == -1) continue; 206 if (Ncat == -2) continue; 205 if (Ncat == -1) continue; // this point is not in this catalog file 206 if (Ncat == -2) continue; // no matches to this point 207 207 208 208 m = catalog.average[Ncat].measureOffset; -
branches/czw_branch/20120906/Ohana/src/opihi/dvo/dvo_host_utils.c
r34260 r34772 79 79 } 80 80 81 // bundle the arguments into a command and pass to dvo_client. this implementation 82 // expects there to be a result file from the clients, and to load this into vectors in 83 // the main shell. 'Nelements' is a temp hack : for most commands, the result vectors are 84 // concatenated, but for avmatch, the vectors are merged by index into a pre-known 85 // length. this is probably not a solution to a general problem.. 86 int HostTableParallelOps (int argc, char **argv, char *ResultFile, int Nelements, int VERBOSE) { 81 // bundle the arguments into a command and pass to dvo_client. 82 83 // the normal ending step expects there to be a result file from the clients, and to load 84 // this into vectors in the main shell. 'Nelements' is a temp hack : for most commands, 85 // the result vectors are concatenated, but for avmatch, the vectors are merged by index 86 // into a pre-known length. this is probably not a solution to a general problem.. 87 88 // an alternative ending step ignores the result files and instead saves the names into 89 // the list 'result:n' for the user to access as desired 90 int HostTableParallelOps (int argc, char **argv, char *ResultFile, int ReadVectors, int Nelements, int VERBOSE) { 87 91 88 92 int i; … … 153 157 } 154 158 159 // create the result file list 160 char name[256]; 161 snprintf (name, 256, "RESULT_FILE:n"); 162 set_int_variable (name, table->Nhosts); 163 snprintf (name, 256, "RESULT_DATA:n"); 164 set_int_variable (name, table->Nhosts); 165 snprintf (name, 256, "RESULT_STATUS:n"); 166 set_int_variable (name, table->Nhosts); 167 155 168 // load fields from file 156 169 int Nvec = 0; 157 170 Vector **vec = NULL; 158 171 for (i = 0; i < table->Nhosts; i++) { 172 173 snprintf (name, 256, "RESULT_FILE:%d", i); 174 set_str_variable (name, table->hosts[i].results); 175 176 // DATA : 0 (unread), 1 (read) 177 snprintf (name, 256, "RESULT_DATA:%d", i); 178 set_int_variable (name, 0); 179 180 // STATUS : 0 (normal exit), -1 (crash), N (failure exit status) 181 snprintf (name, 256, "RESULT_STATUS:%d", i); 182 set_int_variable (name, table->hosts[i].status); 183 159 184 if (table->hosts[i].status) continue; 185 186 if (ReadVectors) { 187 int Ninvec = 0; 188 Vector **invec = ReadVectorTableFITS (table->hosts[i].results, "RESULT", &Ninvec); 189 if (!invec) { 190 // failed to read the file, now what? 191 gprint (GP_ERR, "failed to read remote result file : %s\n", table->hosts[i].results); 192 free (table->hosts[i].results); 193 table->hosts[i].results = NULL; 194 continue; 195 } 196 free (table->hosts[i].results); 197 table->hosts[i].results = NULL; 198 set_int_variable (name, 1); // result file has been read 199 200 if (Nelements == 0) { 201 vec = MergeVectors (vec, &Nvec, invec, Ninvec); 202 if (vec != invec) { 203 FreeVectorArray (invec, Ninvec); 204 } 205 } else { 206 vec = MergeVectorsByIndex (vec, &Nvec, invec, Ninvec, Nelements); 207 FreeVectorArray (invec, Ninvec); 208 } 209 } 210 } 211 212 // write vectors to a table (this is used by parallel dvo operations, but can be used elsewhere) 213 if (ResultFile) { 214 int status = WriteVectorTableFITS (ResultFile, "RESULT", vec, Nvec, FALSE, NULL); 215 if (!status) { 216 gprint (GP_ERR, "failed to write result file %s\n", ResultFile); 217 return FALSE; 218 } 219 } 220 221 for (i = 0; i < Nvec; i++) { 222 AssignVector (vec[i], vec[i]->name, ANYVECTOR, TRUE); 223 } 224 free (vec); 225 226 free (table); 227 return TRUE; 228 } 229 230 // re-gather the remote results files: this can be used in case one of the clients failed, 231 // and has since been re-run 232 int HostTableReloadResults (char *uniquer, int VERBOSE) { 233 234 int i; 235 236 // load the list of hosts 237 SkyTable *sky = GetSkyTable(); 238 if (!sky) { 239 gprint (GP_ERR, "failed to load sky table for database\n"); 240 return FALSE; 241 } 242 243 char *CATDIR = GetCATDIR (); 244 if (!CATDIR) { 245 gprint (GP_ERR, "failed to get CATDIR for database\n"); 246 return FALSE; 247 } 248 249 HostTable *table = HostTableLoad (CATDIR, sky->hosts); 250 if (!table) { 251 gprint (GP_ERR, "ERROR: failure reading Host Table %s for database %s\n", sky->hosts, CATDIR); 252 return FALSE; 253 } 254 255 // load fields from file 256 int Nvec = 0; 257 Vector **vec = NULL; 258 for (i = 0; i < table->Nhosts; i++) { 259 // ensure that the paths are absolute path names 260 char *tmppath = abspath (table->hosts[i].pathname, DVO_MAX_PATH); 261 free (table->hosts[i].pathname); 262 table->hosts[i].pathname = tmppath; 263 264 // need to save the results filename with the uniquer 265 // XXX a bit of a waste (but only 1024 * 60 bytes or so 266 ALLOCATE (table->hosts[i].results, char, DVO_MAX_PATH); 267 snprintf (table->hosts[i].results, DVO_MAX_PATH, "%s/dvo.results.%s.fits", table->hosts[i].pathname, uniquer); 160 268 161 269 int Ninvec = 0; … … 171 279 table->hosts[i].results = NULL; 172 280 173 if (Nelements == 0) { 174 vec = MergeVectors (vec, &Nvec, invec, Ninvec); 175 if (vec != invec) { 176 FreeVectorArray (invec, Ninvec); 177 } 178 } else { 179 vec = MergeVectorsByIndex (vec, &Nvec, invec, Ninvec, Nelements); 281 // fprintf (stderr, "%s : %d\n", table->hosts[i].pathname, invec[0]->Nelements); 282 283 vec = MergeVectors (vec, &Nvec, invec, Ninvec); 284 if (vec != invec) { 180 285 FreeVectorArray (invec, Ninvec); 181 }182 }183 184 // write vectors to a table (this is used by parallel dvo operations, but can be used elsewhere)185 if (ResultFile) {186 int status = WriteVectorTableFITS (ResultFile, "RESULT", vec, Nvec, FALSE, NULL);187 if (!status) {188 gprint (GP_ERR, "failed to write result file %s\n", ResultFile);189 return FALSE;190 286 } 191 287 } … … 199 295 return TRUE; 200 296 } 201 202 // re-gather the remote results files: this can be used in case one of the clients failed,203 // and has since been re-run204 int HostTableReloadResults (char *uniquer, int VERBOSE) {205 206 int i;207 208 // load the list of hosts209 SkyTable *sky = GetSkyTable();210 if (!sky) {211 gprint (GP_ERR, "failed to load sky table for database\n");212 return FALSE;213 }214 215 char *CATDIR = GetCATDIR ();216 if (!CATDIR) {217 gprint (GP_ERR, "failed to get CATDIR for database\n");218 return FALSE;219 }220 221 HostTable *table = HostTableLoad (CATDIR, sky->hosts);222 if (!table) {223 gprint (GP_ERR, "ERROR: failure reading Host Table %s for database %s\n", sky->hosts, CATDIR);224 return FALSE;225 }226 227 // load fields from file228 int Nvec = 0;229 Vector **vec = NULL;230 for (i = 0; i < table->Nhosts; i++) {231 // ensure that the paths are absolute path names232 char *tmppath = abspath (table->hosts[i].pathname, DVO_MAX_PATH);233 free (table->hosts[i].pathname);234 table->hosts[i].pathname = tmppath;235 236 // need to save the results filename with the uniquer237 // XXX a bit of a waste (but only 1024 * 60 bytes or so238 ALLOCATE (table->hosts[i].results, char, DVO_MAX_PATH);239 snprintf (table->hosts[i].results, DVO_MAX_PATH, "%s/dvo.results.%s.fits", table->hosts[i].pathname, uniquer);240 241 int Ninvec = 0;242 Vector **invec = ReadVectorTableFITS (table->hosts[i].results, "RESULT", &Ninvec);243 if (!invec) {244 // failed to read the file, now what?245 gprint (GP_ERR, "failed to read remote result file : %s\n", table->hosts[i].results);246 free (table->hosts[i].results);247 table->hosts[i].results = NULL;248 continue;249 }250 free (table->hosts[i].results);251 table->hosts[i].results = NULL;252 253 // fprintf (stderr, "%s : %d\n", table->hosts[i].pathname, invec[0]->Nelements);254 255 vec = MergeVectors (vec, &Nvec, invec, Ninvec);256 if (vec != invec) {257 FreeVectorArray (invec, Ninvec);258 }259 }260 261 for (i = 0; i < Nvec; i++) {262 AssignVector (vec[i], vec[i]->name, ANYVECTOR, TRUE);263 }264 free (vec);265 266 free (table);267 return TRUE;268 } -
branches/czw_branch/20120906/Ohana/src/opihi/dvo/fitcolors.c
r28241 r34772 311 311 KapaBox (kapa, &graphdata); 312 312 313 PlotVectorPair (kapa, xvec, yvec, &graphdata);313 PlotVectorPair (kapa, xvec, yvec, NULL, &graphdata); 314 314 315 315 for (i = 0; i < 11; i++) { -
branches/czw_branch/20120906/Ohana/src/opihi/dvo/images.c
r34088 r34772 350 350 graphmode.ptype = 100; /* connect pairs of points */ 351 351 graphmode.etype = 0; 352 PlotVectorPair (kapa, &Xvec, &Yvec, &graphmode);352 PlotVectorPair (kapa, &Xvec, &Yvec, NULL, &graphmode); 353 353 } 354 354 -
branches/czw_branch/20120906/Ohana/src/opihi/dvo/imbox.c
r27435 r34772 123 123 graphmode.ptype = 100; /* connect pairs of points */ 124 124 graphmode.etype = 0; 125 PlotVectorPair (kapa, &Xvec, &Yvec, &graphmode);125 PlotVectorPair (kapa, &Xvec, &Yvec, NULL, &graphmode); 126 126 } 127 127 -
branches/czw_branch/20120906/Ohana/src/opihi/dvo/imdense.c
r31635 r34772 65 65 graphmode.style = 2; /* points */ 66 66 graphmode.etype = 0; 67 PlotVectorPair (kapa, &Xvec, &Yvec, &graphmode);67 PlotVectorPair (kapa, &Xvec, &Yvec, NULL, &graphmode); 68 68 } 69 69 -
branches/czw_branch/20120906/Ohana/src/opihi/dvo/imstats.c
r31635 r34772 54 54 graphmode.style = 2; 55 55 graphmode.etype = 0; 56 PlotVectorPair (kapa, &Xvec, &Yvec, &graphmode);56 PlotVectorPair (kapa, &Xvec, &Yvec, NULL, &graphmode); 57 57 58 58 free (Xvec.elements.Flt); -
branches/czw_branch/20120906/Ohana/src/opihi/dvo/init.c
r33662 r34772 42 42 int lightcurve PROTO((int, char **)); 43 43 int mextract PROTO((int, char **)); 44 int mmatch PROTO((int, char **)); 44 45 int mmextract PROTO((int, char **)); 45 46 int objectcoverage PROTO((int, char **)); … … 97 98 {1, "lightcurve", lightcurve, "extract lightcurve for a star"}, 98 99 {1, "mextract", mextract, "extract measure data values"}, 100 {1, "mmatch", mmatch, "extract measure data values matched to RA,DEC points"}, 99 101 {1, "mmextract", mmextract, "extract joined measurements"}, 100 102 {1, "objectcoverage", objectcoverage, "plot catalog boundaries"}, -
branches/czw_branch/20120906/Ohana/src/opihi/dvo/lcurve.c
r34088 r34772 160 160 PlotVectorPairErrors (kapa, &Xvec, &Yvec, &dYvec, &graphmode); 161 161 } else { 162 PlotVectorPair (kapa, &Xvec, &Yvec, &graphmode);162 PlotVectorPair (kapa, &Xvec, &Yvec, NULL, &graphmode); 163 163 } 164 164 -
branches/czw_branch/20120906/Ohana/src/opihi/dvo/mextract.c
r34260 r34772 108 108 // this does all the work of re-packaging the command, calling it on the remote machines, then loading in the results 109 109 if (PARALLEL && !HOST_ID) { 110 int status = HostTableParallelOps (argc, argv, RESULT_FILE, 0, VERBOSE);110 int status = HostTableParallelOps (argc, argv, RESULT_FILE, TRUE, 0, VERBOSE); 111 111 112 112 dbFreeFields (fields, Nfields); … … 313 313 gprint (GP_ERR, " Npos : number of measurments used for astrometry\n"); 314 314 315 gprint (GP_ERR, " objflags : object flags\n"); 316 gprint (GP_ERR, " photflags : detection flags from image analysis\n"); 317 gprint (GP_ERR, " dbflags : detection flags from database analysis\n"); 315 gprint (GP_ERR, " objflags : object flags [alias: obj_flags]\n"); 316 gprint (GP_ERR, " secflags : average photometry flags [aliases: obj_phot_flags, sec_flags, secfilt_flags]\n"); 317 gprint (GP_ERR, " photflags : detection flags from image analysis [alias: phot_flags]\n"); 318 gprint (GP_ERR, " dbflags : detection flags from database analysis [alias: db_flags]\n"); 318 319 319 320 gprint (GP_ERR, " obj_flags : object flags\n"); … … 321 322 gprint (GP_ERR, " db_flags : detection flags from database analysis\n"); 322 323 324 gprint (GP_ERR, " airmass : airmass of detection\n"); 325 gprint (GP_ERR, " meas_airmass : airmass of exposure\n"); 326 gprint (GP_ERR, " alt : altitude of detection\n"); 327 gprint (GP_ERR, " az : azimuth of detection\n"); 328 gprint (GP_ERR, " exptime : exposure time [s]\n"); 329 gprint (GP_ERR, " photcode : photcode \n"); 330 gprint (GP_ERR, " photcode:equiv : equivalent average photcode \n"); 331 gprint (GP_ERR, " photcode:c : zero point of photcode \n"); 332 gprint (GP_ERR, " photcode:klam : airmass slope of photcode \n"); 333 gprint (GP_ERR, " time : time of exposure [Seconds since Jan 1, 1970/\n"); 334 gprint (GP_ERR, " fwhm : fwhm (average) of fitted PSF [pixels]\n"); 335 gprint (GP_ERR, " fwhm_maj : fwhm (major axis) of fitted PSF [pixels]\n"); 336 gprint (GP_ERR, " fwhm_min : fwhm (minor axis) of fitted PSF [pixels]\n"); 337 gprint (GP_ERR, " theta : position angle of fitted PSF\n"); 338 gprint (GP_ERR, " posangle : position angle of detector at measurement [degrees]\n"); 339 gprint (GP_ERR, " platescale : plate scale of detector at measurement [arcsec/pixel] (negative = sky parity)\n"); 340 341 gprint (GP_ERR, " Mxx : second moment in X [pixels^2]\n"); 342 gprint (GP_ERR, " Mxy : second moment cross term [pixels^2]\n"); 343 gprint (GP_ERR, " Myy : second moment in Y [pixels^2]\n"); 344 345 gprint (GP_ERR, " xccd : ccd x position\n"); 346 gprint (GP_ERR, " yccd : ccd y position\n"); 347 gprint (GP_ERR, " xoff : ccd x correction\n"); 348 gprint (GP_ERR, " yoff : ccd y correction\n"); 349 gprint (GP_ERR, " xccd:err : ccd x position error\n"); 350 gprint (GP_ERR, " yccd:err : ccd y position error\n"); 351 352 gprint (GP_ERR, " pos_sys_err : systematic position error\n"); 353 354 gprint (GP_ERR, " xmosaic : mosaic x position\n"); 355 gprint (GP_ERR, " ymosaic : mosaic y position\n"); 356 357 gprint (GP_ERR, " xchip : chip x position (= ccd position)\n"); 358 gprint (GP_ERR, " ychip : chip y position (= ccd position)\n"); 359 gprint (GP_ERR, " xfpa : fpa x position (= mosaic position)\n"); 360 gprint (GP_ERR, " yfpa : fpa y position (= mosaic position)\n"); 361 362 gprint (GP_ERR, " detID : ID of detection (unique on source image)\n"); 363 gprint (GP_ERR, " objID : object ID (32 bit, unique in catalog)\n"); 364 gprint (GP_ERR, " catID : catalog ID (32 bit)\n"); 365 gprint (GP_ERR, " imageID : ID of source image (32 bit)\n"); 366 gprint (GP_ERR, " externID : externID of source image (32 bit)\n"); 367 368 gprint (GP_ERR, " psf_qf : PSF quality factor (psf-weighted mask fraction)\n"); 369 gprint (GP_ERR, " psf_qf_perfect : PSF quality factor, perfect mask version (psf-weighted mask fraction)\n"); 370 371 gprint (GP_ERR, " psf_chisq : PSF fit chi square\n"); 372 gprint (GP_ERR, " psf_ndof : PSF number of degrees of freedom\n"); 373 gprint (GP_ERR, " psf_npix : PSF number of pixels\n"); 374 375 gprint (GP_ERR, " cr_nsigma : Nsigma deviation towards cosmic ray\n"); 376 gprint (GP_ERR, " ext_nsigma : Nsigma deviation towards extended source\n"); 377 378 gprint (GP_ERR, " sky : sky model flux at measurement location\n"); 379 gprint (GP_ERR, " sky_err : sky model stdev at measurement location\n"); 380 381 gprint (GP_ERR, " Mcal_offset : difference wrt nominal zero point (clouds are positive)\n"); 382 gprint (GP_ERR, " flat : flat-field correction (measure.Mcal - image.Mcal)\n"); 383 384 gprint (GP_ERR, " center_offset : distance to image center\n"); 385 gprint (GP_ERR, " flux : PSF flux\n"); 386 gprint (GP_ERR, " flux_err : PSF flux error\n"); 387 gprint (GP_ERR, " flux_psf : PSF flux\n"); 388 gprint (GP_ERR, " flux_psf_err : PSF flux error\n"); 389 gprint (GP_ERR, " flux_kron : KRON flux\n"); 390 gprint (GP_ERR, " flux_kron_err : KRON flux error\n"); 391 392 gprint (GP_ERR, " --- the following fields are selected by giving a photcode with the attached ending\n"); 323 393 gprint (GP_ERR, " <photcode>:ave : average magnitude for photcode (or equivalent)\n"); 324 394 gprint (GP_ERR, " <photcode>:ref : reference magnitude system for photcode (or equivalent)\n"); … … 335 405 gprint (GP_ERR, " <photcode>:ncode : number of measurements in photcode\n"); 336 406 gprint (GP_ERR, " <photcode>:nphot : number of measurements used for average magnitude\n"); 337 gprint (GP_ERR, " airmass : airmass of detection\n"); 338 gprint (GP_ERR, " alt : altitude of detection\n"); 339 gprint (GP_ERR, " az : azimuth of detection\n"); 340 gprint (GP_ERR, " exptime : exposure time [s]\n"); 341 gprint (GP_ERR, " photcode : photcode \n"); 342 gprint (GP_ERR, " photcode:equiv : equivalent average photcode \n"); 343 gprint (GP_ERR, " time : time of exposure [Seconds since Jan 1, 1970/\n"); 344 gprint (GP_ERR, " fwhm : fwhm (average) of fitted PSF [pixels]\n"); 345 gprint (GP_ERR, " fwhm_maj : fwhm (major axis) of fitted PSF [pixels]\n"); 346 gprint (GP_ERR, " fwhm_min : fwhm (minor axis) of fitted PSF [pixels]\n"); 347 gprint (GP_ERR, " theta : position angle of fitted PSF\n"); 348 gprint (GP_ERR, " posangle : position angle of detector at measurement [degrees]\n"); 349 gprint (GP_ERR, " platescale : plate scale of detector at measurement [arcsec/pixel] \n"); 350 351 gprint (GP_ERR, " psf_qf : PSF quality factor (psf-weighted mask fraction)\n"); 352 gprint (GP_ERR, " psf_chisq : PSF fit chi square\n"); 353 gprint (GP_ERR, " psf_ndof : PSF number of degrees of freedom\n"); 354 gprint (GP_ERR, " psf_npix : PSF number of pixels\n"); 355 356 gprint (GP_ERR, " cr_nsigma : Nsigma deviation towards cosmic ray\n"); 357 gprint (GP_ERR, " ext_nsigma : Nsigma deviation towards extended source\n"); 358 359 gprint (GP_ERR, " Mxx : second moment in X [pixels^2]\n"); 360 gprint (GP_ERR, " Mxy : second moment cross term [pixels^2]\n"); 361 gprint (GP_ERR, " Myy : second moment in Y [pixels^2]\n"); 362 363 gprint (GP_ERR, " xccd : ccd x position\n"); 364 gprint (GP_ERR, " yccd : ccd y position\n"); 365 gprint (GP_ERR, " xccd:err : ccd x position error\n"); 366 gprint (GP_ERR, " yccd:err : ccd y position error\n"); 367 gprint (GP_ERR, " xmosaic : mosaic x position\n"); 368 gprint (GP_ERR, " ymosaic : mosaic y position\n"); 369 gprint (GP_ERR, " xchip : chip x position (= ccd position)\n"); 370 gprint (GP_ERR, " ychip : chip y position (= ccd position)\n"); 371 gprint (GP_ERR, " xfpa : fpa x position (= mosaic position)\n"); 372 gprint (GP_ERR, " yfpa : fpa y position (= mosaic position)\n"); 373 374 gprint (GP_ERR, " detID : ID of detection (unique on source image)\n"); 375 gprint (GP_ERR, " objID : object ID (32 bit, unique in catalog)\n"); 376 gprint (GP_ERR, " catID : catalog ID (32 bit)\n"); 377 gprint (GP_ERR, " imageID : ID of source image (32 bit)\n"); 378 gprint (GP_ERR, " externID : externID of source image (32 bit)\n"); 379 380 gprint (GP_ERR, " Mcal_offset : difference wrt nominal zero point (clouds are positive)\n"); 381 gprint (GP_ERR, " flat : flat-field correction (measure.Mcal - image.Mcal)\n"); 407 408 gprint (GP_ERR, " <photcode>:aperinst : instrumental aperture magnitude\n"); 409 gprint (GP_ERR, " <photcode>:aper_inst : instrumental aperture magnitude\n"); 410 gprint (GP_ERR, " <photcode>:kron : kron mag\n"); 411 gprint (GP_ERR, " <photcode>:kroninst : instrumental kron mag\n"); 412 gprint (GP_ERR, " <photcode>:kron_inst : instrumental kron mag\n"); 413 gprint (GP_ERR, " <photcode>:kronerr : kron mag error\n"); 414 415 gprint (GP_ERR, " <photcode>:photflags : photometry flags for measurements\n"); 416 gprint (GP_ERR, " <photcode>:flags : photometry flags for measurements\n"); 417 gprint (GP_ERR, " <photcode>:fluxpsf : average psf flux\n"); 418 gprint (GP_ERR, " <photcode>:fluxpsferr : average psf flux error\n"); 419 gprint (GP_ERR, " <photcode>:fluxkron : average kron flux\n"); 420 gprint (GP_ERR, " <photcode>:fluxkronerr : average kron flux error\n"); 421 382 422 return (FALSE); 383 423 } -
branches/czw_branch/20120906/Ohana/src/opihi/dvo/mmatch.c
r34678 r34772 124 124 125 125 // call the remote client 126 int status = HostTableParallelOps (targc, targv, RESULT_FILE, 0, VERBOSE);126 int status = HostTableParallelOps (targc, targv, RESULT_FILE, TRUE, 0, VERBOSE); 127 127 if (vec) free (vec); 128 128 -
branches/czw_branch/20120906/Ohana/src/opihi/dvo/procks.c
r20936 r34772 113 113 graphmode.style = 2; /* set style to points */ 114 114 graphmode.etype = 0; /* no errorbars */ 115 PlotVectorPair (kapa, &Xvec, &Yvec, &graphmode);115 PlotVectorPair (kapa, &Xvec, &Yvec, NULL, &graphmode); 116 116 117 117 /* now plot vectors between two extrema */ … … 146 146 graphmode.etype = 0; /* no errorbars */ 147 147 148 PlotVectorPair (kapa, &Xvec, &Yvec, &graphmode);148 PlotVectorPair (kapa, &Xvec, &Yvec, NULL, &graphmode); 149 149 150 150 free (Xvec.elements.Flt); -
branches/czw_branch/20120906/Ohana/src/opihi/dvo/remote.c
r33963 r34772 12 12 remove_argument (N, &argc, argv); 13 13 VERBOSE = TRUE; 14 } 15 16 int ReadVectors = TRUE; 17 if ((N = get_argument (argc, argv, "-skip-result"))) { 18 remove_argument (N, &argc, argv); 19 ReadVectors = FALSE; 14 20 } 15 21 … … 43 49 44 50 // strip of the 'remote' and send the remaining arguments to the remote machine 45 int status = HostTableParallelOps (argc - 1, &argv[1], NULL, 0, VERBOSE);51 int status = HostTableParallelOps (argc - 1, &argv[1], NULL, ReadVectors, 0, VERBOSE); 46 52 return status; 47 53 } -
branches/czw_branch/20120906/Ohana/src/opihi/dvo/showtile.c
r20936 r34772 86 86 graphmode.ptype = 100; /* connect pairs of points */ 87 87 graphmode.etype = 0; 88 PlotVectorPair (kapa, &Xvec, &Yvec, &graphmode);88 PlotVectorPair (kapa, &Xvec, &Yvec, NULL, &graphmode); 89 89 } 90 90 -
branches/czw_branch/20120906/Ohana/src/opihi/dvo/simage.c
r34088 r34772 151 151 graphmode.etype = 0; 152 152 153 PlotVectorTriplet (kapa, &Xvec, &Yvec, &Zvec, &graphmode);153 PlotVectorTriplet (kapa, &Xvec, &Yvec, &Zvec, NULL, &graphmode); 154 154 155 155 free (Xvec.elements.Flt); -
branches/czw_branch/20120906/Ohana/src/opihi/dvo/skycat.c
r34088 r34772 100 100 graphmode.ptype = 100; /* connect pairs of points */ 101 101 graphmode.etype = 0; 102 PlotVectorPair (kapa, &Xvec, &Yvec, &graphmode);102 PlotVectorPair (kapa, &Xvec, &Yvec, NULL, &graphmode); 103 103 } 104 104 -
branches/czw_branch/20120906/Ohana/src/opihi/include/data.h
r31636 r34772 84 84 85 85 /* in spline.c */ 86 void spline_construct (float *x, float *y, int N, float *y2); 87 float spline_apply (float *x, float *y, float *y2, int N, float X); 86 void spline_construct_flt (float *x, float *y, int N, float *y2); 87 float spline_apply_flt (float *x, float *y, float *y2, int N, float X); 88 void spline_construct_dbl (opihi_flt *x, opihi_flt *y, int N, opihi_flt *y2); 89 opihi_flt spline_apply_dbl (opihi_flt *x, opihi_flt *y, opihi_flt *y2, int N, opihi_flt X); 88 90 89 91 /* in svdcmp.c */ … … 168 170 void FreeQueues (void); 169 171 void FreeBooks (void); 172 173 // the interpolating spline has valu 174 typedef struct { 175 int Nknots; 176 opihi_flt *xk; 177 opihi_flt *yk; 178 opihi_flt *y2; 179 char *name; 180 } Spline; 181 182 /* in SplineOps.c */ 183 void InitSplines (); 184 void FreeSplines (); 185 void InitSpline (Spline *spline, char *name, int Nknots); 186 void FreeSpline (Spline *spline); 187 Spline *GetSpline (int where); 188 Spline *FindSpline (char *name); 189 Spline *CreateSpline (char *name, int Nknots); 190 int DeleteSpline (Spline *spline); 191 void ListSplines (); 192 int SaveSpline (char *filename, char *name, int append); 193 int LoadSpline (char *filename, char *name); 170 194 171 195 /* hermitian functions */ -
branches/czw_branch/20120906/Ohana/src/opihi/include/display.h
r31636 r34772 7 7 8 8 /*** kapa graph functions ***/ 9 int PlotVectorSingle PROTO((int kapa, Vector *vec, char *m ode));10 int PlotVectorPair PROTO((int kapa, Vector *xVec, Vector *yVec, Graphdata *graphmode));9 int PlotVectorSingle PROTO((int kapa, Vector *vec, char *mask, char *mode)); 10 int PlotVectorPair PROTO((int kapa, Vector *xVec, Vector *yVec, char *mask, Graphdata *graphmode)); 11 11 int PlotVectorPairErrors PROTO((int kapa, Vector *xVec, Vector *yVec, Vector *dyValues, Graphdata *graphmode)); 12 int PlotVectorTriplet PROTO((int kapa, Vector *xVec, Vector *yVec, Vector *zValues, Graphdata *graphmode)); 12 13 int PlotVectorTriplet PROTO((int kapa, Vector *xVec, Vector *yVec, Vector *zValues, char *mask, Graphdata *graphmode)); 13 14 // int GetGraphData PROTO((Graphdata *data, int *kapa, char *name)); 14 15 int GetGraph PROTO((Graphdata *data, int *kapa, char *name)); -
branches/czw_branch/20120906/Ohana/src/opihi/include/dvoshell.h
r33963 r34772 100 100 101 101 int HostTableLaunchJobs PROTO((HostTable *table, char *basecmd, char *options, int VERBOSE)); 102 int HostTableParallelOps PROTO((int argc, char **argv, char *ResultFile, int Nelements, int VERBOSE));102 int HostTableParallelOps PROTO((int argc, char **argv, char *ResultFile, int ReadVectors, int Nelements, int VERBOSE)); 103 103 int HostTableReloadResults PROTO((char *uniquer, int VERBOSE)); 104 104 -
branches/czw_branch/20120906/Ohana/src/opihi/lib.data/Makefile
r31635 r34772 23 23 $(SDIR)/bracket.$(ARCH).o \ 24 24 $(SDIR)/spline.$(ARCH).o \ 25 $(SDIR)/SplineOps.$(ARCH).o \ 25 26 $(SDIR)/mrqmin.$(ARCH).o \ 26 27 $(SDIR)/mrq2dmin.$(ARCH).o \ -
branches/czw_branch/20120906/Ohana/src/opihi/lib.data/PlotVectors.c
r20936 r34772 1 1 # include "display.h" 2 2 3 int PlotVectorSingle (int kapa, Vector *vec, char *m ode) {4 5 int i, Npts ;3 int PlotVectorSingle (int kapa, Vector *vec, char *mask, char *mode) { 4 5 int i, Npts, Nout; 6 6 float *temp; 7 7 … … 9 9 ALLOCATE (temp, float, Npts); 10 10 11 Nout = 0; 11 12 if (vec->type == OPIHI_FLT) { 12 13 opihi_flt *value = vec->elements.Flt; 13 14 for (i = 0; i < Npts; i++) { 14 temp[i] = value[i]; 15 if (mask && mask[i]) continue; 16 temp[Nout] = value[i]; 17 Nout ++; 15 18 } 16 19 } else { 17 20 opihi_int *value = vec->elements.Int; 18 21 for (i = 0; i < Npts; i++) { 19 temp[i] = value[i]; 20 } 21 } 22 KapaPlotVector (kapa, Npts, temp, mode); 23 24 free (temp); 25 26 return (TRUE); 27 } 28 29 int PlotVectorPair (int kapa, Vector *xVec, Vector *yVec, Graphdata *graphmode) { 30 31 int i, Npts; 22 if (mask && mask[i]) continue; 23 temp[Nout] = value[i]; 24 Nout ++; 25 } 26 } 27 KapaPlotVector (kapa, Nout, temp, mode); 28 29 free (temp); 30 31 return (TRUE); 32 } 33 34 int PlotVectorPair (int kapa, Vector *xVec, Vector *yVec, char *mask, Graphdata *graphmode) { 35 36 int i, Npts, Nout; 32 37 float *temp; 33 38 … … 37 42 ALLOCATE (temp, float, Npts); 38 43 39 KapaPrepPlot (kapa, Npts, graphmode); 40 44 Nout = 0; 41 45 if (xVec->type == OPIHI_FLT) { 42 46 opihi_flt *value = xVec->elements.Flt; 43 47 for (i = 0; i < Npts; i++) { 44 temp[i] = value[i]; 48 if (mask && mask[i]) continue; 49 temp[Nout] = value[i]; 50 Nout ++; 45 51 } 46 52 } else { 47 53 opihi_int *value = xVec->elements.Int; 48 54 for (i = 0; i < Npts; i++) { 49 temp[i] = value[i]; 50 } 51 } 52 KapaPlotVector (kapa, Npts, temp, "x"); 53 55 if (mask && mask[i]) continue; 56 temp[Nout] = value[i]; 57 Nout ++; 58 } 59 } 60 KapaPrepPlot (kapa, Nout, graphmode); 61 KapaPlotVector (kapa, Nout, temp, "x"); 62 63 Nout = 0; 54 64 if (yVec->type == OPIHI_FLT) { 55 65 opihi_flt *value = yVec->elements.Flt; 56 66 for (i = 0; i < Npts; i++) { 57 temp[i] = value[i]; 67 if (mask && mask[i]) continue; 68 temp[Nout] = value[i]; 69 Nout ++; 58 70 } 59 71 } else { 60 72 opihi_int *value = yVec->elements.Int; 61 73 for (i = 0; i < Npts; i++) { 62 temp[i] = value[i]; 63 } 64 } 65 KapaPlotVector (kapa, Npts, temp, "y"); 66 67 free (temp); 68 69 return (TRUE); 70 } 71 72 int PlotVectorTriplet (int kapa, Vector *xVec, Vector *yVec, Vector *zVec, Graphdata *graphmode) { 73 74 int i, Npts; 74 if (mask && mask[i]) continue; 75 temp[Nout] = value[i]; 76 Nout ++; 77 } 78 } 79 KapaPlotVector (kapa, Nout, temp, "y"); 80 81 free (temp); 82 83 return (TRUE); 84 } 85 86 int PlotVectorTriplet (int kapa, Vector *xVec, Vector *yVec, Vector *zVec, char *mask, Graphdata *graphmode) { 87 88 int i, Npts, Nout; 75 89 float *temp; 76 90 … … 81 95 ALLOCATE (temp, float, Npts); 82 96 83 KapaPrepPlot (kapa, Npts, graphmode); 84 97 Nout = 0; 85 98 if (xVec->type == OPIHI_FLT) { 86 99 opihi_flt *value = xVec->elements.Flt; 87 100 for (i = 0; i < Npts; i++) { 88 temp[i] = value[i]; 101 if (mask && mask[i]) continue; 102 temp[Nout] = value[i]; 103 Nout ++; 89 104 } 90 105 } else { 91 106 opihi_int *value = xVec->elements.Int; 92 107 for (i = 0; i < Npts; i++) { 93 temp[i] = value[i]; 94 } 95 } 96 KapaPlotVector (kapa, Npts, temp, "x"); 97 108 if (mask && mask[i]) continue; 109 temp[Nout] = value[i]; 110 Nout ++; 111 } 112 } 113 KapaPrepPlot (kapa, Nout, graphmode); 114 KapaPlotVector (kapa, Nout, temp, "x"); 115 116 Nout = 0; 98 117 if (yVec->type == OPIHI_FLT) { 99 118 opihi_flt *value = yVec->elements.Flt; 100 119 for (i = 0; i < Npts; i++) { 101 temp[i] = value[i]; 120 if (mask && mask[i]) continue; 121 temp[Nout] = value[i]; 122 Nout ++; 102 123 } 103 124 } else { 104 125 opihi_int *value = yVec->elements.Int; 105 126 for (i = 0; i < Npts; i++) { 106 temp[i] = value[i]; 107 } 108 } 109 KapaPlotVector (kapa, Npts, temp, "y"); 110 127 if (mask && mask[i]) continue; 128 temp[Nout] = value[i]; 129 Nout ++; 130 } 131 } 132 KapaPlotVector (kapa, Nout, temp, "y"); 133 134 Nout = 0; 111 135 if (zVec->type == OPIHI_FLT) { 112 136 opihi_flt *value = zVec->elements.Flt; 113 137 for (i = 0; i < Npts; i++) { 114 temp[i] = value[i]; 138 if (mask && mask[i]) continue; 139 temp[Nout] = value[i]; 140 Nout ++; 115 141 } 116 142 } else { 117 143 opihi_int *value = zVec->elements.Int; 118 144 for (i = 0; i < Npts; i++) { 119 temp[i] = value[i]; 120 } 121 } 122 KapaPlotVector (kapa, Npts, temp, "z"); 145 if (mask && mask[i]) continue; 146 temp[Nout] = value[i]; 147 Nout ++; 148 } 149 } 150 KapaPlotVector (kapa, Nout, temp, "z"); 123 151 124 152 free (temp); -
branches/czw_branch/20120906/Ohana/src/opihi/lib.data/spline.c
r16119 r34772 2 2 3 3 /* construct the natural spline for x, y in y2 */ 4 void spline_construct (float *x, float *y, int N, float *y2) {4 void spline_construct_flt (float *x, float *y, int N, float *y2) { 5 5 6 6 int i; … … 27 27 28 28 /* evaluate spline for x, y, y2 at X */ 29 float spline_apply (float *x, float *y, float *y2, int N, float X) {29 float spline_apply_flt (float *x, float *y, float *y2, int N, float X) { 30 30 31 31 int i, lo, hi; … … 58 58 59 59 } 60 61 /* construct the natural spline for x, y in y2 */ 62 void spline_construct_dbl (opihi_flt *x, opihi_flt *y, int N, opihi_flt *y2) { 63 64 int i; 65 opihi_flt dy, dx, *tmp; 66 67 ALLOCATE (tmp, opihi_flt, N); 68 69 y2[0] = tmp[0] = 0.0; 70 71 for (i = 1; i < N-1; i++) { 72 dx = (x[i+0] - x[i-1]) / (x[i+1] - x[i-1]); 73 dy = dx * y2[i-1] + 2.0; 74 y2[i] = (dx - 1.0) / dy; 75 tmp[i] = (y[i+1] - y[i+0]) / (x[i+1] - x[i+0]) - (y[i+0] - y[i-1]) / (x[i+0] - x[i-1]); 76 tmp[i] = (6.0 * tmp[i] / (x[i+1] - x[i-1]) - dx*tmp[i-1]) / dy; 77 } 78 79 y2[N-1] = 0; 80 for (i = N-2; i >= 1; i--) 81 y2[i] = y2[i]*y2[i+1] + tmp[i]; 82 83 free (tmp); 84 } 85 86 /* evaluate spline for x, y, y2 at X */ 87 opihi_flt spline_apply_dbl (opihi_flt *x, opihi_flt *y, opihi_flt *y2, int N, opihi_flt X) { 88 89 int i, lo, hi; 90 opihi_flt dx, a, b, value; 91 92 /* find correct element in array (x must be sorted) */ 93 lo = 0; 94 hi = N-1; 95 while (hi - lo > 1) { 96 i = 0.5*(hi+lo); 97 if (x[i] > X) { 98 hi = i; 99 } else { 100 lo = i; 101 } 102 } 103 104 /* error condition: duplicate abssisca */ 105 dx = x[hi] - x[lo]; 106 if (dx == 0.0) { 107 return (HUGE_VAL); 108 } 109 110 /* evaluate spline */ 111 a = (x[hi] - X) / dx; 112 b = (X - x[lo]) / dx; 113 114 value = a*y[lo] + b*y[hi] + ((a*a*a - a)*y2[lo] + (b*b*b - b)*y2[hi])*(dx*dx) / 6.0; 115 return (value); 116 117 } -
branches/czw_branch/20120906/Ohana/src/opihi/lib.shell/VectorIO.c
r33963 r34772 2 2 3 3 // write a set of vectors to a FITS file (vectors names become fits column names) 4 int WriteVectorTableFITS (char *filename, char *extname, Vector **vec, int Nvec, int append, char *format) { 5 4 int WriteVectorTable (Header *theader, FTable *ftable, char *extname, Vector **vec, int Nvec, char *format) { 5 6 int j; 7 6 8 char *tformat = NULL; 7 Header header; 8 Matrix matrix; 9 Header theader; 10 FTable ftable; 11 12 int j; 13 FILE *f = NULL; 14 15 /* open file for outuput */ 16 if (append) { 17 f = fopen (filename, "a"); 18 } else { 19 f = fopen (filename, "w"); 20 } 21 if (f == (FILE *) NULL) { 22 gprint (GP_ERR, "can't open file for write : %s\n", filename); 23 return (FALSE); 24 } 25 26 if (!append) { 27 gfits_init_header (&header); 28 header.extend = TRUE; 29 gfits_create_header (&header); 30 gfits_create_matrix (&header, &matrix); 31 } 32 33 gfits_create_table_header (&theader, "BINTABLE", extname); 9 10 gfits_create_table_header (theader, "BINTABLE", extname); 34 11 35 12 ALLOCATE (tformat, char, 2*Nvec); … … 71 48 // this somehow 72 49 for (j = 0; j < Nvec; j++) { 73 gfits_define_bintable_column ( &theader, &tformat[2*j], vec[j][0].name, NULL, NULL, 1.0, 0.0);50 gfits_define_bintable_column (theader, &tformat[2*j], vec[j][0].name, NULL, NULL, 1.0, 0.0); 74 51 } 75 52 free (tformat); 76 53 77 54 // generate the output array that carries the data 78 gfits_create_table ( &theader, &ftable);55 gfits_create_table (theader, ftable); 79 56 80 57 // add the vectors to the output array 81 58 for (j = 0; j < Nvec; j++) { 82 59 if (vec[j][0].type == OPIHI_FLT) { 83 gfits_set_bintable_column_reformat ( &theader, &ftable, vec[j][0].name, "double", vec[j][0].elements.Flt, vec[j][0].Nelements);60 gfits_set_bintable_column_reformat (theader, ftable, vec[j][0].name, "double", vec[j][0].elements.Flt, vec[j][0].Nelements); 84 61 } else { 85 gfits_set_bintable_column_reformat (&theader, &ftable, vec[j][0].name, "int", vec[j][0].elements.Int, vec[j][0].Nelements); 86 } 87 } 62 gfits_set_bintable_column_reformat (theader, ftable, vec[j][0].name, "int", vec[j][0].elements.Int, vec[j][0].Nelements); 63 } 64 } 65 return (TRUE); 66 67 escape: 68 if (tformat) free (tformat); 69 return (FALSE); 70 } 71 72 // write a set of vectors to a FITS file (vectors names become fits column names) 73 int WriteVectorTableFITS (char *filename, char *extname, Vector **vec, int Nvec, int append, char *format) { 74 75 Header header; 76 Matrix matrix; 77 Header theader; 78 FTable ftable; 79 80 FILE *f = NULL; 81 82 /* open file for outuput */ 83 if (append) { 84 f = fopen (filename, "a"); 85 } else { 86 f = fopen (filename, "w"); 87 } 88 if (f == (FILE *) NULL) { 89 gprint (GP_ERR, "can't open file for write : %s\n", filename); 90 return (FALSE); 91 } 92 93 if (!WriteVectorTable (&theader, &ftable, extname, vec, Nvec, format)) goto escape; 88 94 89 95 if (!append) { 96 gfits_init_header (&header); 97 header.extend = TRUE; 98 gfits_create_header (&header); 99 gfits_create_matrix (&header, &matrix); 90 100 gfits_fwrite_header (f, &header); 91 101 gfits_fwrite_matrix (f, &matrix); … … 111 121 gfits_free_table (&ftable); 112 122 113 if (tformat) free (tformat);114 123 fclose (f); 115 124 fflush (f); -
branches/czw_branch/20120906/Ohana/src/photdbc/src/ConfigInit.c
r33963 r34772 14 14 char *config, *file; 15 15 char CatdirPhotcodeFile[256]; 16 char MasterPhotcodeFile[256];17 16 18 17 /*** load configuration info ***/ … … 60 59 free (tmpcatdir); 61 60 62 ScanConfig (config, "PHOTCODE_FILE", "%s", 0, MasterPhotcodeFile);63 64 61 sprintf (ImageCat, "%s/Images.dat", CATDIR); 65 62 … … 73 70 /* XXX this does not yet write out the master photcode table */ 74 71 sprintf (CatdirPhotcodeFile, "%s/Photcodes.dat", CATDIR); 75 if (!LoadPhotcodes (CatdirPhotcodeFile, NULL, TRUE)) {72 if (!LoadPhotcodes (CatdirPhotcodeFile, NULL, FALSE)) { 76 73 fprintf (stderr, "error loading photcode table %s\n", CatdirPhotcodeFile); 77 74 exit (1); -
branches/czw_branch/20120906/Ohana/src/relastro/include/relastro.h
r33963 r34772 271 271 void initstats PROTO((char *mode)); 272 272 int liststats PROTO((double *value, double *dvalue, int N, StatType *stats)); 273 int liststats_pos PROTO((double *value, double *dvalue, int N, StatType *stats, int XVERB)); 273 274 Catalog *load_catalogs PROTO((SkyList *skylist, int *Ncatalog, int subselect, int hostID, char *hostpath)); 274 275 int load_images PROTO((FITS_DB *db, SkyList *skylist)); -
branches/czw_branch/20120906/Ohana/src/relastro/src/ConfigInit.c
r33963 r34772 5 5 char *config, *file; 6 6 char CatdirPhotcodeFile[256]; 7 char MasterPhotcodeFile[256];8 7 struct stat filestat; 9 8 int status; … … 46 45 ScanConfig(config, "CATMODE", "%s", 0, CATMODE); 47 46 ScanConfig(config, "CATFORMAT", "%s", 0, CATFORMAT); 48 ScanConfig(config, "PHOTCODE_FILE", "%s", 0, MasterPhotcodeFile);49 47 50 48 // Defaults for WHERE_A are established in db_utils.c: intializeConstraints … … 73 71 /* update master photcode table if not defined */ 74 72 sprintf (CatdirPhotcodeFile, "%s/Photcodes.dat", CATDIR); 75 if (!LoadPhotcodes (CatdirPhotcodeFile, MasterPhotcodeFile, TRUE)) {76 fprintf (stderr, "error loading photcode table %s or master file %s\n", CatdirPhotcodeFile, MasterPhotcodeFile);73 if (!LoadPhotcodes (CatdirPhotcodeFile, NULL, FALSE)) { 74 fprintf (stderr, "error loading photcode table %s\n", CatdirPhotcodeFile); 77 75 exit (1); 78 76 } -
branches/czw_branch/20120906/Ohana/src/relastro/src/ImageOps.c
r34088 r34772 174 174 for (i = 0; i < Ncatalog; i++) { 175 175 for (j = 0; j < catalog[i].Nmeasure; j++) { 176 // XXX : update to optionally restrict by photcode equiv a la relphot 177 // ecode = GetPhotcodeEquivCodebyCode (catalog[i].measure[j].photcode); 178 // if (photcode[0].code != ecode) continue; 176 if (NphotcodesSkip > 0) { 177 int k; 178 int found = FALSE; 179 for (k = 0; (k < NphotcodesSkip) && !found; k++) { 180 if (photcodesSkip[k][0].code == catalog[i].measure[j].photcode) found = TRUE; 181 if (photcodesSkip[k][0].code == GetPhotcodeEquivCodebyCode(catalog[i].measure[j].photcode)) found = TRUE; 182 } 183 if (found) continue; 184 } 179 185 matchImage (catalog, j, i, MATCHCAT); 180 186 } -
branches/czw_branch/20120906/Ohana/src/relastro/src/UpdateObjects.c
r34405 r34772 103 103 mode = FIT_MODE; 104 104 105 // XVERB |= (catalog[i].averge[j].objID == 0xc90) && (catalog[i].average[j].catID == 0x2a1e); 106 XVERB |= (catalog[i].average[j].objID == OBJ_ID_SRC) && (catalog[i].average[j].catID == CAT_ID_SRC); 107 XVERB |= (catalog[i].average[j].objID == OBJ_ID_DST) && (catalog[i].average[j].catID == CAT_ID_DST); 108 105 109 // find the basic properties of the detections for this object (Tmin, Tmax, Tmean) 106 110 for (k = 0; k < catalog[i].average[j].Nmeasure; k++) { 111 112 if (XVERB) { 113 char *date = ohana_sec_to_date (measure[k].t); 114 int dbFlagsBig = measureBig ? measureBig[k].dbFlags : 0; 115 fprintf (stderr, OFF_T_FMT" %f %f %s : 0x%08x : 0x%08x\n", k, measure[k].dR, measure[k].dD, date, measure[k].dbFlags, dbFlagsBig); 116 free (date); 117 } 107 118 108 119 // does the measurement pass the supplied filtering constraints? … … 113 124 } 114 125 115 // outlier rejection126 // outlier rejection 116 127 if (FlagOutlier && (measure[k].dbFlags & ID_MEAS_POOR_ASTROM)) { 117 128 measure[k].dbFlags &= ~ID_MEAS_USED_OBJ; … … 138 149 if (isnan(dX[N])) { 139 150 measure[k].dbFlags &= ~ID_MEAS_USED_OBJ; 151 if (measureBig) { measureBig[k].dbFlags &= ~ID_MEAS_USED_OBJ; } 140 152 continue; 141 153 } 142 154 if (isnan(dY[N])) { 143 155 measure[k].dbFlags &= ~ID_MEAS_USED_OBJ; 156 if (measureBig) { measureBig[k].dbFlags &= ~ID_MEAS_USED_OBJ; } 144 157 continue; 145 158 } … … 168 181 } 169 182 170 // if we have too few good detections for the desired fit, or too limited a baseline, use a171 // fit with fewer parameters. XXX if we have too few parameters for even the average172 // position, consider including the lower-quality detections173 174 catalog[i].average[j].flags &= ~ID_STAR_ FEW;183 // if we have too few good detections for the desired fit, or too limited a 184 // baseline, use a fit with fewer parameters. XXX if we have too few measurements 185 // for even the average position, consider including the lower-quality detections? 186 187 catalog[i].average[j].flags &= ~ID_STAR_NO_ASTROM; 175 188 176 189 // find Tmin & Tmax from the list of accepted measurements … … 197 210 // XXX need to define PHOTOM and ASTROM object flags 198 211 // XXX reset the average value fields? 199 catalog[i].average[j].flags |= ID_STAR_ FEW;212 catalog[i].average[j].flags |= ID_STAR_NO_ASTROM; 200 213 catalog[i].average[j].ChiSqAve = NAN; 201 214 catalog[i].average[j].ChiSqPM = NAN; … … 207 220 coords.crval1 = R[0]; 208 221 coords.crval2 = D[0]; 209 210 // XVERB |= (catalog[i].averge[j].objID == 0xc90) && (catalog[i].average[j].catID == 0x2a1e);211 XVERB |= (catalog[i].average[j].objID == OBJ_ID_SRC) && (catalog[i].average[j].catID == CAT_ID_SRC);212 XVERB |= (catalog[i].average[j].objID == OBJ_ID_DST) && (catalog[i].average[j].catID == CAT_ID_DST);213 222 214 223 // to judge the quality of the PM and PAR fits, we need to fit all three models and compare Chisq … … 266 275 // fit the average model 267 276 if ((mode == FIT_AVERAGE) || (mode == FIT_PM_ONLY) || (mode == FIT_PM_AND_PAR)) { 268 liststats (R, dR, N, &statsR); // WARNING: this function modifies R (do not use after here)269 liststats (D, dD, N, &statsD); // WARNING: this function modifies D (do not use after here)277 liststats_pos (R, dR, N, &statsR, XVERB); // WARNING: this function modifies R (do not use after here) 278 liststats_pos (D, dD, N, &statsD, XVERB); // WARNING: this function modifies D (do not use after here) 270 279 271 280 fitAve.Ro = statsR.mean; … … 275 284 fitAve.dDo = 3600.0*statsD.sigma; 276 285 277 fitAve.chisq = 0.5 *(statsR.chisq + statsD.chisq);286 fitAve.chisq = 0.5 * (statsR.chisq + statsD.chisq); 278 287 fitAve.Nfit = N; 279 288 … … 358 367 catalog[i].average[j].Trange = (Trange * 86400 * 365.26); 359 368 catalog[i].average[j].Npos = fit.Nfit; 360 if (XVERB) fprintf (stderr, "%f %f -> %f %f (%f,%f) pm=(%f %f) \n",369 if (XVERB) fprintf (stderr, "%f %f -> %f %f (%f,%f) pm=(%f %f) chisq=(%f, %f, %f)\n", 361 370 catalog[i].average[j].R, 362 371 catalog[i].average[j].D, … … 365 374 3600*(catalog[i].average[j].D - fit.Do), 366 375 catalog[i].average[j].uR, 367 catalog[i].average[j].uD );368 376 catalog[i].average[j].uD, 377 fitAve.chisq, fitPM.chisq, fitPAR.chisq); 369 378 } 370 379 -
branches/czw_branch/20120906/Ohana/src/relastro/src/args.c
r33963 r34772 237 237 } 238 238 239 PHOTCODE_SKIP_LIST = NULL;239 PHOTCODE_SKIP_LIST = strcreate("SCOS.103a.E,SCOS.4414.OG590,SCOS.4415.OG590,SCOS.IIIaF.OG590,SCOS.IIIaF.RG610,SCOS.IIIaF.RG630,SCOS.IIIaJ.GG385,SCOS.IIIaJ.GG395,SCOS.IVN.RG715,SCOS.IVN.RG9"); 240 240 if ((N = get_argument (argc, argv, "-photcode"))) { 241 241 remove_argument (N, &argc, argv); 242 PHOTCODE_SKIP_LIST = strcreate(argv[N]); 242 char *tmp1 = strcreate(argv[N]); 243 244 int Ntotal = strlen(tmp1) + strlen(PHOTCODE_SKIP_LIST) + 5; 245 246 char *tmp2 = NULL; 247 ALLOCATE (tmp2, char, Ntotal); 248 snprintf (tmp2, Ntotal, "%s,%s", PHOTCODE_SKIP_LIST, tmp1); 249 250 free (tmp1); 251 free (PHOTCODE_SKIP_LIST); 252 253 PHOTCODE_SKIP_LIST = tmp2; 243 254 remove_argument (N, &argc, argv); 244 255 } -
branches/czw_branch/20120906/Ohana/src/relastro/src/bcatalog.c
r33652 r34772 26 26 27 27 DVOAverageFlags averageBits = 28 ID_STAR_FEW | 29 ID_STAR_POOR | 30 ID_STAR_FIT_AVE | 31 ID_STAR_FIT_PM | 32 ID_STAR_FIT_PAR | 33 ID_STAR_USE_AVE | 34 ID_STAR_USE_PM | 35 ID_STAR_USE_PAR; 28 ID_STAR_FIT_AVE | 29 ID_STAR_FIT_PM | 30 ID_STAR_FIT_PAR | 31 ID_STAR_USE_AVE | 32 ID_STAR_USE_PM | 33 ID_STAR_USE_PAR | 34 ID_STAR_NO_ASTROM ; 36 35 37 36 /* exclude stars not in range or with too few measurements */ -
branches/czw_branch/20120906/Ohana/src/relastro/src/initialize.c
r33652 r34772 19 19 20 20 initstats (STATMODE); 21 22 // IMAGE_BAD = ID_IMAGE_ASTROM_POOR | ID_IMAGE_ASTROM_FEW | ID_IMAGE_ASTROM_SKIP;23 // STAR_BAD = ID_STAR_POOR | ID_STAR_FEW;24 // MEAS_BAD = ID_MEAS_NOCAL | ID_MEAS_POOR_ASTROM | ID_MEAS_SKIP_ASTROM | ID_MEAS_AREA;25 21 26 22 /* XXX drop irrelevant entries */ … … 57 53 58 54 initstats (STATMODE); 59 60 // IMAGE_BAD = ID_IMAGE_ASTROM_POOR | ID_IMAGE_ASTROM_FEW | ID_IMAGE_ASTROM_SKIP;61 // STAR_BAD = ID_STAR_POOR | ID_STAR_FEW;62 // MEAS_BAD = ID_MEAS_NOCAL | ID_MEAS_POOR_ASTROM | ID_MEAS_SKIP_ASTROM | ID_MEAS_AREA;63 55 } 64 56 -
branches/czw_branch/20120906/Ohana/src/relastro/src/liststats.c
r17214 r34772 136 136 dS += M; 137 137 } 138 X2 = X2 / Nm;138 X2 = X2 / (Nm - 1); 139 139 dS = sqrt (dS / Nm); 140 140 … … 148 148 } 149 149 150 int liststats_pos (double *value, double *dvalue, int N, StatType *stats, int XVERB) { 151 152 int i, ks, ke, Nm; 153 double Mo, dMo, M, dM, X2, dS, *chi; 154 155 ke = ks = dMo = 0; 156 157 stats[0].Nmeas = N; 158 stats[0].mean = 0; 159 stats[0].sigma = 0; 160 stats[0].error = 0; 161 stats[0].chisq = 0; 162 if (N < 1) return (FALSE); 163 164 dsortpair (value, dvalue, N); 165 if (N % 2) { 166 stats[0].median = value[(int)(0.5*N)]; 167 } else { 168 stats[0].median = 0.5*(value[N/2] + value[N/2 - 1]); 169 } 170 stats[0].min = value[0]; 171 stats[0].max = value[N-1]; 172 173 switch (statmode) { 174 case M_MEDIAN: 175 ks = 0; 176 ke = N; 177 Mo = stats[0].median; 178 Nm = N; 179 goto chisq; 180 break; 181 case M_MEAN: 182 case M_WTMEAN: 183 ks = 0; 184 ke = N; 185 break; 186 case M_INNER_MEAN: 187 case M_INNER_WTMEAN: 188 case M_CHI_INNER_MEAN: 189 case M_CHI_INNER_WTMEAN: 190 ks = 0.25*N + 0.50; 191 ke = 0.75*N + 0.25; 192 if (N <= 3) { 193 ks = 0; 194 ke = N; 195 } 196 break; 197 case M_INNER_80_MEAN: 198 case M_INNER_80_WTMEAN: 199 case M_CHI_INNER_80_MEAN: 200 case M_CHI_INNER_80_WTMEAN: 201 ks = 0.1*N + 0.1; 202 ke = 0.8*N + 0.1; 203 if (N <= 10) { 204 ks = 0; 205 ke = N; 206 } 207 break; 208 } 209 210 if ((statmode == M_CHI_INNER_MEAN) || 211 (statmode == M_CHI_INNER_WTMEAN) || 212 (statmode == M_CHI_INNER_80_MEAN) || 213 (statmode == M_CHI_INNER_80_WTMEAN)) { 214 ALLOCATE (chi, double, N); 215 for (i = 0; i < N; i++) { 216 chi[i] = (value[i] - stats[0].median) / dvalue[i]; 217 } 218 dsortthree (chi, value, dvalue, N); 219 free (chi); 220 } 221 222 /* calculating the per-star offset based on the weighted average */ 223 M = dM = Nm = 0; 224 if ((statmode == M_WTMEAN) || 225 (statmode == M_INNER_WTMEAN) || 226 (statmode == M_INNER_80_WTMEAN) || 227 (statmode == M_CHI_INNER_WTMEAN) || 228 (statmode == M_CHI_INNER_80_WTMEAN)) { 229 for (i = ks; i < ke; i++) { 230 M += value[i] / SQ (dvalue[i]); 231 dM += 1.0 / SQ (dvalue[i]); 232 Nm ++; 233 } 234 Mo = M / dM; 235 dMo = sqrt (1.0 / dM); 236 } else { 237 for (i = ks; i < ke; i++) { 238 M += value[i]; 239 dM += SQ (dvalue[i]); 240 Nm ++; 241 } 242 Mo = M / (double) Nm; 243 dMo = sqrt (dM / (double) Nm); 244 } 245 246 chisq: 247 /* find sigma and chisq */ 248 X2 = dS = 0; 249 for (i = ks; i < ke; i++) { 250 M = SQ (value[i] - Mo); 251 dM = SQ (dvalue[i]); 252 X2 += M / dM; 253 dS += M; 254 if (XVERB) fprintf (stderr, "chisq contrib : %f : %f : %f : %f : %f\n", Mo, 3600.0*(value[i] - Mo), 3600.0*dvalue[i], (value[i] - Mo) / dvalue[i], X2); 255 } 256 X2 = X2 / (Nm - 1); 257 dS = sqrt (dS / Nm); 258 259 stats[0].mean = Mo; 260 stats[0].Nmeas = Nm; 261 stats[0].chisq = X2; 262 stats[0].sigma = dS; 263 stats[0].error = dMo; 264 265 return (TRUE); 266 } 267 -
branches/czw_branch/20120906/Ohana/src/relastro/src/relastro_objects.c
r34405 r34772 16 16 17 17 DVOAverageFlags averageBits = 18 ID_STAR_FEW | 19 ID_STAR_POOR | 20 ID_STAR_FIT_AVE | 21 ID_STAR_FIT_PM | 22 ID_STAR_FIT_PAR | 23 ID_STAR_USE_AVE | 24 ID_STAR_USE_PM | 25 ID_STAR_USE_PAR; 18 ID_STAR_FIT_AVE | 19 ID_STAR_FIT_PM | 20 ID_STAR_FIT_PAR | 21 ID_STAR_USE_AVE | 22 ID_STAR_USE_PM | 23 ID_STAR_USE_PAR | 24 ID_STAR_NO_ASTROM ; 26 25 27 26 // XXX need to decide how to determine PARALLEL mode... … … 133 132 134 133 char command[1024]; 135 snprintf (command, 1024, "relastro_client -update-objects -hostID %d -D CATDIR %s -hostdir %s -region %f %f %f %f ",136 table->hosts[i].hostID, CATDIR, table->hosts[i].pathname, UserPatch.Rmin, UserPatch.Rmax, UserPatch.Dmin, UserPatch.Dmax );134 snprintf (command, 1024, "relastro_client -update-objects -hostID %d -D CATDIR %s -hostdir %s -region %f %f %f %f -statmode %s", 135 table->hosts[i].hostID, CATDIR, table->hosts[i].pathname, UserPatch.Rmin, UserPatch.Rmax, UserPatch.Dmin, UserPatch.Dmax, STATMODE); 137 136 138 137 char tmpline[1024]; -
branches/czw_branch/20120906/Ohana/src/relphot/include/relphot.h
r34260 r34772 137 137 int NGRID; 138 138 int RESET; 139 int RESET_ZEROPTS; 139 140 int UPDATE; 140 141 int SAVE_IMAGE_UPDATES; -
branches/czw_branch/20120906/Ohana/src/relphot/src/ConfigInit.c
r33963 r34772 6 6 char *config, *file; 7 7 char CatdirPhotcodeFile[256]; 8 char MasterPhotcodeFile[256];9 8 10 9 /*** load configuration info ***/ … … 45 44 ScanConfig (config, "CATMODE", "%s", 0, CATMODE); 46 45 ScanConfig (config, "CATFORMAT", "%s", 0, CATFORMAT); 47 ScanConfig (config, "PHOTCODE_FILE", "%s", 0, MasterPhotcodeFile);48 46 49 s printf (ImageCat, "%s/Images.dat", CATDIR);47 snprintf (ImageCat, DVO_MAX_PATH, "%s/Images.dat", CATDIR); 50 48 51 49 if (!ScanConfig (config, "SKY_DEPTH", "%d", 0, &SKY_DEPTH)) { … … 69 67 /* XXX this does not yet write out the master photcode table */ 70 68 sprintf (CatdirPhotcodeFile, "%s/Photcodes.dat", CATDIR); 71 if (!LoadPhotcodes (CatdirPhotcodeFile, MasterPhotcodeFile, TRUE)) {72 fprintf (stderr, "error loading photcode table %s or master file %s\n", CatdirPhotcodeFile, MasterPhotcodeFile);69 if (!LoadPhotcodes (CatdirPhotcodeFile, NULL, FALSE)) { 70 fprintf (stderr, "error loading photcode table %s\n", CatdirPhotcodeFile); 73 71 exit (1); 74 72 } -
branches/czw_branch/20120906/Ohana/src/relphot/src/StarOps.c
r34267 r34772 11 11 int Nmos; 12 12 int Ngrid; 13 double *list; 14 double *dlist; 15 double *wlist; 16 double *aplist; 17 double *kronlist; 18 double *dkronlist; 13 14 // NOTE: the following arrays are (possibly) pre-allocated and carried down to each 15 // thread. The first 3 (list, dlist, wlist) are used in all relphot analyses; the 16 // others are only used on the final output steps. 17 18 double *list; // list of measure.mag values for a given star 19 double *dlist; // mag errors for a star 20 double *wlist; // weights to use for mean mags 21 double *aplist; // ap mags for a star 22 double *kronlist; // kron mags for a star 23 double *dkronlist; // kron mag errors 24 25 double *psfqf_list; // psfqf for all filters 26 double *psfqfperf_list; // psfqfperf for all filters 27 double *stargal_list; // stargal for all filters 19 28 } SetMrelInfo; 20 29 … … 168 177 ALLOCATE (results.dkronlist, double, Nmax); 169 178 179 ALLOCATE (results.psfqf_list, double, Nmax); 180 ALLOCATE (results.psfqfperf_list, double, Nmax); 181 ALLOCATE (results.stargal_list, double, Nmax); 182 170 183 for (i = 0; i < Ncatalog; i++) { 171 184 setMrel_catalog (catalog, i, pass, flatcorr, &results, Nsecfilt); // XXX add arguments as needed for options … … 178 191 free (results.kronlist); 179 192 free (results.dkronlist); 193 194 free (results.psfqf_list); 195 free (results.psfqfperf_list); 196 free (results.stargal_list); 180 197 return (TRUE); 181 198 } … … 315 332 liststats_setmode (&kronstats, STATMODE); 316 333 334 // StatType psfstats; 335 // liststats_setmode (&psfstats, "MEAN"); 336 317 337 double *list = results->list; 318 338 double *dlist = results->dlist; … … 322 342 double *dkronlist = results->dkronlist; 323 343 344 double *psfqf_list = results->psfqf_list; 345 double *psfqfperf_list = results->psfqfperf_list; 346 double *stargal_list = results->stargal_list; 347 324 348 SetMrelInfoInit (results, FALSE); // do not allocate list,dlist,wlist arrays 325 349 … … 327 351 328 352 char *primaryCell = NULL; 329 ALLOCATE (primaryCell, char, DVO_MAX_PATH); 353 if (isSetMrelFinal) { 354 ALLOCATE (primaryCell, char, DVO_MAX_PATH); 355 } 330 356 331 357 for (j = 0; j < catalog[Nc].Naverage; j++) { 332 // XXX accumulate all secfilt values in a single pass?333 334 358 // option for a test print 335 359 if (FALSE && (catalog[Nc].average[j].objID == 0x7146) && (catalog[Nc].average[j].catID == 0x49d8)) { … … 338 362 } 339 363 340 BoundaryTreePrimaryCell(primaryCell, catalog[Nc].average[j].R, catalog[Nc].average[j].D); 364 if (isSetMrelFinal) { 365 BoundaryTreePrimaryCell(primaryCell, catalog[Nc].average[j].R, catalog[Nc].average[j].D); 366 } 341 367 342 368 int GoodPS1 = FALSE; … … 346 372 int NextPS1 = 0; 347 373 int NpsfPS1 = 0; 374 375 int Nmeas = 0; // number of meas used for psfqf, psfqfperf, and stargal 376 377 int NstackGood = 0; 378 int NstackSuspect = 0; 379 380 int haveStackObject = FALSE; 348 381 349 382 int Ns; … … 365 398 int haveSynth = FALSE; 366 399 int haveStack = FALSE; 400 int havePS1 = FALSE; 367 401 368 402 // need to find the measurement closest to the center of its skycell, as well as the … … 370 404 371 405 float stackCenterOffsetMin = 1e9; 372 int stackCenterIDmin = -1;373 406 off_t stackCenterMeasureMin = -1; 374 407 375 408 float stackPrimaryOffsetMin = 1e9; 376 int stackPrimaryIDmin = -1;377 409 off_t stackPrimaryMeasureMin = -1; 378 410 … … 384 416 int minUbercalDist = 1000; 385 417 418 int isBad = FALSE; 419 int isSuspect = FALSE; 420 386 421 N = 0; 387 422 m = catalog[Nc].averageT[j].measureOffset; … … 393 428 if (code->equiv != thisCode) { continue; } 394 429 Ncode ++; 430 431 catalog[Nc].measure[m].dbFlags &= ~ID_MEAS_STACK_PRIMARY; 395 432 396 433 if (catalog[Nc].measureT[m].dbFlags & MEAS_BAD) SKIP_THIS_MEAS(Nbad); … … 414 451 if (isnan(Msys)) SKIP_THIS_MEAS(Nsys); 415 452 416 list[N] = Msys - Mcal - Mmos - Mgrid;417 418 453 int myUbercalDist = getUbercalDist(m,Nc); 419 454 minUbercalDist = MIN(minUbercalDist, myUbercalDist); 420 455 421 456 if (isSetMrelFinal) { 422 float Map = PhotAper (&catalog[Nc].measure[m]);423 aplist[N] = Map - Mcal - Mmos - Mgrid;424 425 float Mkron = PhotKron (&catalog[Nc].measure[m]);426 kronlist[N] = Mkron - Mcal - Mmos - Mgrid;427 dkronlist[N] = catalog[Nc].measure[m].dMkron;428 429 457 // special options for PS1 data 430 458 if ((catalog[Nc].measure[m].photcode >= 10000) && (catalog[Nc].measure[m].photcode <= 10500)) { 431 459 // count the extended detections 432 460 if (!isnan(catalog[Nc].measure[m].Map)) { 433 if (catalog[Nc].measure[m].M - catalog[Nc].measure[m].Map > 0.5) { 461 float dMagAp = catalog[Nc].measure[m].M - catalog[Nc].measure[m].Map; 462 float SigmaAp = hypot(0.1, 2.5*catalog[Nc].measure[m].dM); 463 // XXX this is still quite ad hoc, but at least it: 464 // (a) converges to 0.1 mag offset at the bright end 465 // (b) converges to 0.5 mag offset at the faint end (dM = 0.2) 466 if (dMagAp > SigmaAp) { 434 467 Next ++; 435 468 NextPS1 ++; … … 438 471 } 439 472 } 473 havePS1 = TRUE; 440 474 } 475 441 476 // gpc1 stack data 442 477 if ((catalog[Nc].measure[m].photcode >= 11000) && (catalog[Nc].measure[m].photcode <= 11400)) { 443 // if (pass < 2) continue;444 478 haveStack = TRUE; 479 haveStackObject = TRUE; 445 480 446 481 unsigned int stackImageID; … … 452 487 if (stackPrimaryOffset < stackPrimaryOffsetMin) { 453 488 stackPrimaryOffsetMin = stackPrimaryOffset; 454 stackPrimaryIDmin = stackImageID;489 // stackPrimaryIDmin = stackImageID; 455 490 stackPrimaryMeasureMin = m; 456 491 } … … 461 496 if (stackCenterOffset < stackCenterOffsetMin) { 462 497 stackCenterOffsetMin = stackCenterOffset; 463 stackCenterIDmin = stackImageID;498 // stackCenterIDmin = stackImageID; 464 499 stackCenterMeasureMin = m; 465 500 } 501 502 // data quality assessment 503 isBad |= (catalog[Nc].measure[m].photFlags & code->photomBadMask); 504 isBad |= (catalog[Nc].measure[m].psfQF < 0.85); 505 isBad |= isnan(catalog[Nc].measure[m].psfQF); 506 isBad |= catalog[Nc].measure[m].dM > 0.2; // S/N < 5.0 507 508 isSuspect |= (catalog[Nc].measure[m].photFlags & code->photomPoorMask); 509 isSuspect |= (catalog[Nc].measure[m].psfQFperf < 0.85); 510 511 // mean psfQF, psfQFperf, and stargal values are calculated per object (all filters, stacks and exposures) 512 psfqf_list[Nmeas] = catalog[Nc].measure[m].psfQF; 513 psfqfperf_list[Nmeas] = catalog[Nc].measure[m].psfQFperf; 514 stargal_list[Nmeas] = catalog[Nc].measure[m].extNsigma; 515 Nmeas++; 516 517 continue; // do not include stack measurements in the per-exposure statistics 466 518 } 467 519 … … 478 530 // detections without one of these bits should only be used in PASS_1 479 531 SKIP_THIS_MEAS(Nbad); 480 continue;481 532 } 482 533 } … … 512 563 if (pass < 4) { 513 564 SKIP_THIS_MEAS(Nbad); 514 continue;515 565 } 516 566 haveSynth = TRUE; 517 567 } 518 568 } 569 570 // Map (aplist) and Mkron (kronlist,dkronlist) are used to calculate mean mags per filter 571 float Map = PhotAper (&catalog[Nc].measure[m]); 572 aplist[N] = Map - Mcal - Mmos - Mgrid; 573 574 float Mkron = PhotKron (&catalog[Nc].measure[m]); 575 kronlist[N] = Mkron - Mcal - Mmos - Mgrid; 576 dkronlist[N] = catalog[Nc].measure[m].dMkron; 577 578 // mean psfQF, psfQFperf, and stargal values are calculated per object (all filters, stacks and exposures) 579 psfqf_list[Nmeas] = catalog[Nc].measure[m].psfQF; 580 psfqfperf_list[Nmeas] = catalog[Nc].measure[m].psfQFperf; 581 stargal_list[Nmeas] = catalog[Nc].measure[m].extNsigma; 582 Nmeas++; 519 583 } 520 584 … … 527 591 dlist[N] = MAX (hypot(catalog[Nc].measureT[m].dM, code->photomErrSys), MIN_ERROR); 528 592 wlist[N] = 1.0; 593 list[N] = Msys - Mcal - Mmos - Mgrid; 529 594 530 595 // up-weight the ubercal values (or convergence can take a long time...) … … 549 614 if (haveStack && (N > 1)) { 550 615 // fprintf (stderr, "multiple stack values for %10.6f %10.6f\n", catalog[Nc].averageT[j].R, catalog[Nc].averageT[j].D); 616 } 617 618 if (haveStack) { 619 if (!isSuspect && !isBad) { 620 NstackGood ++; 621 } 622 if (isSuspect && !isBad) { 623 NstackSuspect ++; 624 } 551 625 } 552 626 … … 604 678 if (haveStack) { 605 679 m = (stackPrimaryMeasureMin >= 0) ? stackPrimaryMeasureMin : stackCenterMeasureMin; 606 ID = (stackPrimaryMeasureMin >= 0) ? stackPrimaryIDmin : stackCenterIDmin; 680 681 // we are now populating stackDetectID not stack Image ID in secfilt 682 // ID = (stackPrimaryMeasureMin >= 0) ? stackPrimaryIDmin : stackCenterIDmin; 683 ID = catalog[Nc].measure[m].extID; // for the stack, this is the stackDetectID 607 684 608 685 // get the zero point for the selected image 609 float zp = Mcal + Mmos + Mgrid + PhotZeroPoint (&catalog[Nc].measure[m], &catalog[Nc].average[j], &catalog[Nc].secfilt[j*Nsecfilt]);686 float zp = PhotZeroPoint (&catalog[Nc].measure[m], &catalog[Nc].average[j], &catalog[Nc].secfilt[j*Nsecfilt]) - (Mcal + Mmos + Mgrid); 610 687 611 688 // flux_cgs : erg sec^1 cm^-2 Hz^-1 … … 647 724 catalog[Nc].secfilt[Nsecfilt*j+Nsec].dFluxKron = zpFactor * catalog[Nc].measure[m].dFluxKron; 648 725 649 catalog[Nc].secfilt[Nsecfilt*j+Nsec].stackID = ID; 726 catalog[Nc].secfilt[Nsecfilt*j+Nsec].stackDetectID = ID; 727 728 catalog[Nc].measure[m].dbFlags |= ID_MEAS_STACK_PHOT_SRC; 729 if (stackPrimaryMeasureMin >= 0) { 730 catalog[Nc].measure[m].dbFlags |= ID_MEAS_STACK_PRIMARY; 731 } 650 732 } 651 733 … … 658 740 case 0: 659 741 catalog[Nc].secfilt[Nsecfilt*j+Nsec].flags |= ID_PHOTOM_PASS_0; 660 GoodPS1 = TRUE;742 if (havePS1) GoodPS1 = TRUE; 661 743 break; 662 744 case 1: 663 745 catalog[Nc].secfilt[Nsecfilt*j+Nsec].flags |= ID_PHOTOM_PASS_1; 664 GoodPS1 = TRUE;746 if (havePS1) GoodPS1 = TRUE; 665 747 break; 666 748 case 2: 667 749 catalog[Nc].secfilt[Nsecfilt*j+Nsec].flags |= ID_PHOTOM_PASS_2; 668 GoodPS1 = TRUE;750 if (havePS1) GoodPS1 = TRUE; 669 751 break; 670 752 case 3: … … 678 760 catalog[Nc].secfilt[Nsecfilt*j+Nsec].flags |= ID_SECF_USE_SYNTH; 679 761 } 762 if (haveStack) { 763 catalog[Nc].secfilt[Nsecfilt*j+Nsec].flags |= ID_SECF_HAS_STACK; 764 } 765 if (havePS1) { 766 catalog[Nc].secfilt[Nsecfilt*j+Nsec].flags |= ID_SECF_HAS_PS1; 767 } 680 768 if (haveUbercal) { 681 769 catalog[Nc].secfilt[Nsecfilt*j+Nsec].flags |= ID_SECF_USE_UBERCAL; … … 685 773 686 774 if (isSetMrelFinal) { 687 DVOAverageFlags flagBits = ID_OBJ_EXT | ID_OBJ_EXT_ALT | ID_OBJ_GOOD | ID_OBJ_GOOD_ALT; 688 689 // we attempt to set a few flags here; reset those bits before trying: 690 catalog[Nc].average[j].flags &= ~flagBits; 775 if (pass == 0) { 776 DVOAverageFlags flagBits = ID_OBJ_EXT | ID_OBJ_EXT_ALT | ID_OBJ_GOOD | ID_OBJ_GOOD_ALT; 777 // we attempt to set a few flags here; reset those bits before trying: 778 catalog[Nc].average[j].flags &= ~flagBits; 779 } 691 780 692 781 if (NextPS1 && (NextPS1 > NpsfPS1)) { … … 701 790 if (Good2MASS) { 702 791 catalog[Nc].average[j].flags |= ID_OBJ_GOOD_ALT; 792 } 793 794 if (NstackGood >= 2) { 795 catalog[Nc].average[j].flags |= ID_OBJ_GOOD_STACK; 796 } else if (NstackGood + NstackSuspect >= 2) { 797 catalog[Nc].average[j].flags |= ID_OBJ_SUSPECT_STACK; 798 } else if (haveStackObject) { 799 catalog[Nc].average[j].flags |= ID_OBJ_BAD_STACK; 800 } 801 802 // use NAN values for catalog[Nc].average[j].psfQF as signal 803 if (!isfinite(catalog[Nc].average[j].psfQF)) { 804 // do something here 805 float psfQFmax = 0.0; 806 float psfQFperfmax = 0.0; 807 float stargalmax = 0.0; 808 int seq; 809 for (seq = 0; seq < Nmeas; seq++) { 810 if (isfinite(psfqf_list[seq])) { 811 psfQFmax = MAX (psfqf_list[seq], psfQFmax); 812 } 813 if (isfinite(psfqfperf_list[seq])) { 814 psfQFperfmax = MAX (psfqfperf_list[seq], psfQFperfmax); 815 } 816 if (isfinite(stargal_list[seq])) { 817 stargalmax = MAX (stargal_list[seq], stargalmax); 818 } 819 } 820 821 catalog[Nc].average[j].psfQF = psfQFmax; 822 catalog[Nc].average[j].psfQFperf = psfQFperfmax; 823 catalog[Nc].average[j].stargal = stargalmax; 703 824 } 704 825 } -
branches/czw_branch/20120906/Ohana/src/relphot/src/args.c
r34260 r34772 163 163 } 164 164 165 RESET_ZEROPTS = FALSE; 166 if ((N = get_argument (argc, argv, "-reset-zpts"))) { 167 remove_argument (N, &argc, argv); 168 RESET_ZEROPTS = TRUE; 169 } 170 165 171 UPDATE = FALSE; 166 172 if ((N = get_argument (argc, argv, "-update"))) { … … 418 424 remove_argument (N, &argc, argv); 419 425 RESET = TRUE; 426 } 427 428 RESET_ZEROPTS = FALSE; 429 if ((N = get_argument (argc, argv, "-reset-zpts"))) { 430 remove_argument (N, &argc, argv); 431 RESET_ZEROPTS = TRUE; 420 432 } 421 433 -
branches/czw_branch/20120906/Ohana/src/relphot/src/initialize.c
r33963 r34772 77 77 args_client (argc, argv); 78 78 79 if (MODE == MODE_UPDATE_OBJECTS) return; 79 if (MODE == MODE_UPDATE_OBJECTS) { 80 char tmpline1[256]; 81 int Ns; 82 Nphotcodes = GetPhotcodeNsecfilt (); 83 ALLOCATE (photcodes, PhotCode *, Nphotcodes); 84 ALLOCATE (PhotcodeList, char, 256); 85 for (Ns = 0; Ns < Nphotcodes; Ns++) { 86 photcodes[Ns] = GetPhotcodebyNsec (Ns); 87 if (Ns > 0) { 88 snprintf (tmpline1, 256, "%s,%s", PhotcodeList, photcodes[Ns][0].name); 89 } else { 90 snprintf (tmpline1, 256, "%s", photcodes[Ns][0].name); 91 } 92 strcpy (PhotcodeList, tmpline1); 93 } 94 return; 95 } 80 96 81 97 // load the list of photcodes into the globals (photcodes, Nphotcodes) -
branches/czw_branch/20120906/Ohana/src/relphot/src/liststats.c
r33963 r34772 38 38 dsortthree (value, dvalue, weight, N); 39 39 } else { 40 dsortpair (value, dvalue, N); 40 if (dvalue) { 41 dsortpair (value, dvalue, N); 42 } else { 43 dsort (value, N); 44 } 41 45 } 42 46 -
branches/czw_branch/20120906/Ohana/src/relphot/src/load_catalogs.c
r34405 r34772 134 134 // KEEP_UBERCAL 135 135 // RESET (-reset) 136 // RESET_ZEROPTS (-reset-zpts) 136 137 // TimeSelect -time 137 138 // DophotSelect … … 150 151 if (VERBOSE2) { snprintf (tmpline, 1024, "%s -vv", command); strcpy (command, tmpline); } 151 152 if (RESET) { snprintf (tmpline, 1024, "%s -reset", command); strcpy (command, tmpline); } 153 if (RESET_ZEROPTS) { snprintf (tmpline, 1024, "%s -reset-zpts", command); strcpy (command, tmpline); } 152 154 if (!KEEP_UBERCAL) { snprintf (tmpline, 1024, "%s -reset-ubercal", command); strcpy (command, tmpline); } 153 155 if (DophotSelect) { snprintf (tmpline, 1024, "%s -dophot %d", command, DophotValue); strcpy (command, tmpline); } -
branches/czw_branch/20120906/Ohana/src/relphot/src/reload_catalogs.c
r34088 r34772 172 172 // VERBOSE, VERBOSE2 173 173 // RESET 174 // RESET_ZEROPTS 174 175 // TimeSelect 175 176 // AreaSelect … … 182 183 if (VERBOSE2) { snprintf (tmpline, 1024, "%s -vv", command); strcpy (command, tmpline); } 183 184 if (RESET) { snprintf (tmpline, 1024, "%s -reset", command); strcpy (command, tmpline); } 185 if (RESET_ZEROPTS) { snprintf (tmpline, 1024, "%s -reset-zpts", command); strcpy (command, tmpline); } 184 186 if (UPDATE) { snprintf (tmpline, 1024, "%s -update", command); strcpy (command, tmpline); } 185 187 if (!KEEP_UBERCAL) { snprintf (tmpline, 1024, "%s -reset-ubercal", command); strcpy (command, tmpline); } -
branches/czw_branch/20120906/Ohana/src/relphot/src/relphot_objects.c
r34405 r34772 61 61 Nsecfilt = catalog.Nsecfilt; 62 62 DVOSecfiltFlags secfiltBits = 63 ID_SECF_STAR_FEW |64 ID_SECF_STAR_POOR |65 ID_PHOTOM_PASS_0 |66 ID_PHOTOM_PASS_1 |67 ID_PHOTOM_PASS_2 |68 ID_PHOTOM_PASS_3 |69 ID_PHOTOM_PASS_4 |70 ID_SECF_USE_SYNTH |63 ID_SECF_STAR_FEW | 64 ID_SECF_STAR_POOR | 65 ID_PHOTOM_PASS_0 | 66 ID_PHOTOM_PASS_1 | 67 ID_PHOTOM_PASS_2 | 68 ID_PHOTOM_PASS_3 | 69 ID_PHOTOM_PASS_4 | 70 ID_SECF_USE_SYNTH | 71 71 ID_SECF_USE_UBERCAL | 72 ID_SECF_OBJ_EXT; 72 ID_SECF_HAS_STACK | 73 ID_SECF_HAS_PS1 | 74 ID_SECF_OBJ_EXT ; 75 76 DVOAverageFlags astromBits = 77 ID_STAR_FIT_AVE | 78 ID_STAR_FIT_PM | 79 ID_STAR_FIT_PAR | 80 ID_STAR_USE_AVE | 81 ID_STAR_USE_PM | 82 ID_STAR_USE_PAR | 83 ID_STAR_NO_ASTROM ; 73 84 74 85 for (j = 0; j < catalog.Naverage; j++) { 75 catalog.average[j].flags = 0; 86 catalog.average[j].flags &= astromBits; // reset all except astrometry bits 87 catalog.average[j].psfQF = NAN; // reset (will be re-calculated here) 88 catalog.average[j].psfQFperf = NAN; // reset (will be re-calculated here) 89 catalog.average[j].stargal = NAN; // reset (will be re-calculated here) 76 90 for (k = 0; k < Nsecfilt; k++) { 77 catalog.secfilt[j*Nsecfilt + k].M = NAN; 78 catalog.secfilt[j*Nsecfilt + k].Map = NAN; 79 catalog.secfilt[j*Nsecfilt + k].dM = NAN; 80 catalog.secfilt[j*Nsecfilt + k].Mstdev = NAN_S_SHORT; 81 catalog.secfilt[j*Nsecfilt + k].Xm = NAN; 82 catalog.secfilt[j*Nsecfilt + k].M_20 = NAN_S_SHORT; 83 catalog.secfilt[j*Nsecfilt + k].M_80 = NAN_S_SHORT; 84 catalog.secfilt[j*Nsecfilt + k].Ncode = 0; 85 catalog.secfilt[j*Nsecfilt + k].Nused = 0; 86 catalog.secfilt[j*Nsecfilt + k].flags &= ~secfiltBits; 87 catalog.secfilt[j*Nsecfilt + k].ubercalDist = 1000; 91 dvo_secfilt_init (&catalog.secfilt[j*Nsecfilt + k]); 92 catalog.secfilt[j*Nsecfilt + k].flags &= ~secfiltBits; // XXX: only reset photom bits: 88 93 } 89 94 } … … 157 162 if (VERBOSE2) { snprintf (tmpline, 1024, "%s -vv", command); strcpy (command, tmpline); } 158 163 if (RESET) { snprintf (tmpline, 1024, "%s -reset", command); strcpy (command, tmpline); } 164 if (RESET_ZEROPTS) { snprintf (tmpline, 1024, "%s -reset-zpts", command); strcpy (command, tmpline); } 159 165 if (UPDATE) { snprintf (tmpline, 1024, "%s -update", command); strcpy (command, tmpline); } 160 166 if (!KEEP_UBERCAL) { snprintf (tmpline, 1024, "%s -reset-ubercal", command); strcpy (command, tmpline); } -
branches/czw_branch/20120906/Ohana/src/relphot/src/select_images.c
r34088 r34772 256 256 } 257 257 if (RESET) { 258 if (!KEEP_UBERCAL || !(image[nimage].flags & ID_IMAGE_PHOTOM_UBERCAL)) { 259 image[nimage].Mcal = 0.0; 260 image[nimage].dMcal = NAN; 261 image[nimage].flags &= ~ID_IMAGE_PHOTOM_UBERCAL; 258 if (RESET_ZEROPTS) { 259 if (!KEEP_UBERCAL || !(image[nimage].flags & ID_IMAGE_PHOTOM_UBERCAL)) { 260 image[nimage].Mcal = 0.0; 261 image[nimage].dMcal = NAN; 262 image[nimage].flags &= ~ID_IMAGE_PHOTOM_UBERCAL; 263 } 262 264 } 263 265 image[nimage].flags &= ~ID_IMAGE_PHOTOM_POOR; -
branches/czw_branch/20120906/Ohana/src/relphot/src/setMrelFinal.c
r34405 r34772 40 40 for (i = 0; i < catalog[0].Naverage; i++) { 41 41 off_t N = Nsecfilt*i+Nsec; 42 catalog[0].secfilt[N].M = NAN; 43 catalog[0].secfilt[N].Map = NAN; 44 catalog[0].secfilt[N].dM = NAN; 45 catalog[0].secfilt[N].Mstdev = NAN_S_SHORT; 46 catalog[0].secfilt[N].Xm = NAN; 47 catalog[0].secfilt[N].M_20 = NAN_S_SHORT; 48 catalog[0].secfilt[N].M_80 = NAN_S_SHORT; 49 catalog[0].secfilt[N].Ncode = 0; 50 catalog[0].secfilt[N].Nused = 0; 51 catalog[0].secfilt[N].flags = 0; // XXX there are no *astrometry* bits in secfilt.flags 52 catalog[0].secfilt[N].ubercalDist = 1000; 42 dvo_secfilt_init (&catalog[0].secfilt[N]); 53 43 54 44 off_t m = catalog[0].average[i].measureOffset; … … 75 65 } 76 66 } else { 77 if ( getImageEntry (m, 0) >= 0) {67 if (RESET_ZEROPTS && (getImageEntry (m, 0) >= 0)) { 78 68 catalog[0].measure[m].Mcal = 0.0; 79 69 } … … 92 82 for (i = 0; i < Nsecfilt*catalog[0].Naverage; i++) { 93 83 catalog[0].found[i] = FALSE; 84 } 85 86 for (i = 0; i < catalog[0].Naverage; i++) { 87 catalog[0].average[i].psfQF = NAN; // force recalculation below 88 catalog[0].average[i].psfQFperf = NAN; // force recalculation below 89 catalog[0].average[i].stargal = NAN; // force recalculation below 94 90 } 95 91 … … 241 237 } 242 238 243 // PASS 2 : accept stack measurements239 // PASS 2 : (no additional cut) 244 240 245 241 // PASS 1 : accept poor measurements as well (eg, POOR FIT, etc) -
branches/czw_branch/20120906/Ohana/src/tools/src/radec.c
r33661 r34772 23 23 status = _hms_to_deg (&ra, &dec, line, sep, 3); 24 24 if (status) 25 fprintf (stdout, "%1 0.6f %10.6f\n", ra, dec);25 fprintf (stdout, "%12.8f %12.8f\n", ra, dec); 26 26 } 27 27 exit (0); -
branches/czw_branch/20120906/Ohana/src/uniphot/Makefile
r33654 r34772 21 21 setphot: $(BIN)/setphot.$(ARCH) 22 22 setphot_client: $(BIN)/setphot_client.$(ARCH) 23 setposangle: $(BIN)/setposangle.$(ARCH) 24 setposangle_client: $(BIN)/setposangle_client.$(ARCH) 23 25 24 install: $(DESTBIN)/uniphot $(DESTBIN)/setfwhm $(DESTBIN)/setphot $(DESTBIN)/setphot_client 26 install: $(DESTBIN)/uniphot $(DESTBIN)/setfwhm $(DESTBIN)/setphot $(DESTBIN)/setphot_client $(DESTBIN)/setposangle $(DESTBIN)/setposangle_client 25 27 26 28 UNIPHOT = \ … … 71 73 $(BIN)/setphot_client.$(ARCH): $(SETPHOT_CLIENT) 72 74 75 SETPOSANGLE = \ 76 $(SRC)/setposangle.$(ARCH).o \ 77 $(SRC)/initialize_setposangle.$(ARCH).o \ 78 $(SRC)/load_images_setposangle.$(ARCH).o \ 79 $(SRC)/ImageSubsetSetPosangle.$(ARCH).o \ 80 $(SRC)/update_dvo_setposangle.$(ARCH).o \ 81 $(SRC)/update_catalog_setposangle.$(ARCH).o \ 82 $(SRC)/SetSignals.$(ARCH).o \ 83 $(SRC)/Shutdown.$(ARCH).o 84 85 $(SETPOSANGLE): $(INC)/setposangle.h 86 $(BIN)/setposangle.$(ARCH): $(SETPOSANGLE) 87 88 SETPOSANGLE_CLIENT = \ 89 $(SRC)/setposangle_client.$(ARCH).o \ 90 $(SRC)/update_dvo_setposangle.$(ARCH).o \ 91 $(SRC)/update_catalog_setposangle.$(ARCH).o \ 92 $(SRC)/initialize_setposangle.$(ARCH).o \ 93 $(SRC)/load_images_setposangle.$(ARCH).o \ 94 $(SRC)/SetSignals.$(ARCH).o \ 95 $(SRC)/Shutdown.$(ARCH).o \ 96 $(SRC)/ImageSubsetSetPosangle.$(ARCH).o 97 98 $(SETPOSANGLE_CLIENT): $(INC)/setposangle.h 99 $(BIN)/setposangle_client.$(ARCH): $(SETPOSANGLE_CLIENT) 100 73 101 SETFWHM = \ 74 102 $(SRC)/setfwhm.$(ARCH).o \ -
branches/czw_branch/20120906/Ohana/src/uniphot/src/initialize_setphot.c
r33963 r34772 21 21 // load the photcode table 22 22 sprintf (CatdirPhotcodeFile, "%s/Photcodes.dat", CATDIR); 23 if (!LoadPhotcodes (CatdirPhotcodeFile, NULL, TRUE)) {23 if (!LoadPhotcodes (CatdirPhotcodeFile, NULL, FALSE)) { 24 24 fprintf (stderr, "error loading photcode table %s\n", CatdirPhotcodeFile); 25 25 exit (1); -
branches/czw_branch/20120906/Ohana/src/uniphot/src/initialize_setphot_client.c
r33654 r34772 17 17 // load the photcode table : XXX needed? 18 18 sprintf (CatdirPhotcodeFile, "%s/Photcodes.dat", CATDIR); 19 if (!LoadPhotcodes (CatdirPhotcodeFile, NULL, TRUE)) {19 if (!LoadPhotcodes (CatdirPhotcodeFile, NULL, FALSE)) { 20 20 fprintf (stderr, "error loading photcode table %s\n", CatdirPhotcodeFile); 21 21 exit (1);
Note:
See TracChangeset
for help on using the changeset viewer.
