Changeset 26776
- Timestamp:
- Feb 4, 2010, 8:59:31 PM (16 years ago)
- Location:
- branches/eam_branches/20091201
- Files:
-
- 8 edited
-
ippconfig/gpc1/ppImage.config (modified) (5 diffs)
-
ippconfig/recipes/ppImage.config (modified) (2 diffs)
-
ppImage/src/ppImage.h (modified) (2 diffs)
-
ppImage/src/ppImageDetrendPattern.c (modified) (1 diff)
-
ppImage/src/ppImageLoop.c (modified) (1 diff)
-
ppImage/src/ppImageOptions.c (modified) (5 diffs)
-
psModules/src/detrend/pmPattern.c (modified) (1 diff)
-
psModules/src/detrend/pmPattern.h (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
branches/eam_branches/20091201/ippconfig/gpc1/ppImage.config
r26730 r26776 24 24 NOISEMAP BOOL FALSE # Apply read noise map 25 25 26 PATTERN BOOL FALSE # Do any pattern subtraction at all?27 PATTERN. SUBSET METADATA # List of chips and whether to do pattern subtraction26 PATTERN.ROW BOOL FALSE # Do any row pattern correction at all? 27 PATTERN.ROW.SUBSET METADATA # List of chips and whether to do row pattern correction 28 28 XY01 BOOL FALSE 29 29 XY02 BOOL FALSE … … 283 283 END 284 284 285 PATTERN.CELL BOOL TRUE # Do any cell pattern correction at all? 286 PATTERN.CELL.SUBSET METADATA # List of chips and whether to do cell pattern correction 287 XY01 BOOL FALSE 288 XY02 BOOL FALSE 289 XY03 BOOL FALSE 290 XY04 BOOL FALSE 291 XY05 BOOL FALSE 292 XY06 METADATA 293 xy00 BOOL TRUE 294 xy01 BOOL FALSE 295 xy02 BOOL FALSE 296 xy03 BOOL FALSE 297 xy04 BOOL FALSE 298 xy05 BOOL FALSE 299 xy06 BOOL FALSE 300 xy07 BOOL FALSE 301 xy10 BOOL FALSE 302 xy11 BOOL FALSE 303 xy12 BOOL FALSE 304 xy13 BOOL TRUE 305 xy14 BOOL FALSE 306 xy15 BOOL FALSE 307 xy16 BOOL FALSE 308 xy17 BOOL FALSE 309 xy20 BOOL FALSE 310 xy21 BOOL FALSE 311 xy22 BOOL FALSE 312 xy23 BOOL FALSE 313 xy24 BOOL TRUE 314 xy25 BOOL FALSE 315 xy26 BOOL TRUE 316 xy27 BOOL FALSE 317 xy30 BOOL FALSE 318 xy31 BOOL TRUE 319 xy32 BOOL FALSE 320 xy33 BOOL FALSE 321 xy34 BOOL FALSE 322 xy35 BOOL FALSE 323 xy36 BOOL FALSE 324 xy37 BOOL FALSE 325 xy40 BOOL FALSE 326 xy41 BOOL FALSE 327 xy42 BOOL FALSE 328 xy43 BOOL FALSE 329 xy44 BOOL FALSE 330 xy45 BOOL FALSE 331 xy46 BOOL FALSE 332 xy47 BOOL FALSE 333 xy50 BOOL FALSE 334 xy51 BOOL FALSE 335 xy52 BOOL FALSE 336 xy53 BOOL FALSE 337 xy54 BOOL FALSE 338 xy55 BOOL FALSE 339 xy56 BOOL FALSE 340 xy57 BOOL FALSE 341 xy60 BOOL FALSE 342 xy61 BOOL FALSE 343 xy62 BOOL FALSE 344 xy63 BOOL FALSE 345 xy64 BOOL FALSE 346 xy65 BOOL FALSE 347 xy66 BOOL FALSE 348 xy67 BOOL FALSE 349 xy70 BOOL FALSE 350 xy71 BOOL FALSE 351 xy72 BOOL FALSE 352 xy73 BOOL FALSE 353 xy74 BOOL FALSE 354 xy75 BOOL FALSE 355 xy76 BOOL FALSE 356 xy77 BOOL FALSE 357 END 358 XY10 BOOL FALSE 359 XY11 BOOL FALSE 360 XY12 BOOL FALSE 361 XY13 BOOL FALSE 362 XY14 METADATA 363 xy00 BOOL FALSE 364 xy01 BOOL FALSE 365 xy02 BOOL FALSE 366 xy03 BOOL FALSE 367 xy04 BOOL FALSE 368 xy05 BOOL FALSE 369 xy06 BOOL FALSE 370 xy07 BOOL FALSE 371 xy10 BOOL FALSE 372 xy11 BOOL FALSE 373 xy12 BOOL FALSE 374 xy13 BOOL FALSE 375 xy14 BOOL FALSE 376 xy15 BOOL FALSE 377 xy16 BOOL FALSE 378 xy17 BOOL FALSE 379 xy20 BOOL FALSE 380 xy21 BOOL FALSE 381 xy22 BOOL FALSE 382 xy23 BOOL FALSE 383 xy24 BOOL FALSE 384 xy25 BOOL FALSE 385 xy26 BOOL FALSE 386 xy27 BOOL FALSE 387 xy30 BOOL FALSE 388 xy31 BOOL FALSE 389 xy32 BOOL FALSE 390 xy33 BOOL FALSE 391 xy34 BOOL FALSE 392 xy35 BOOL FALSE 393 xy36 BOOL FALSE 394 xy37 BOOL FALSE 395 xy40 BOOL FALSE 396 xy41 BOOL FALSE 397 xy42 BOOL FALSE 398 xy43 BOOL FALSE 399 xy44 BOOL FALSE 400 xy45 BOOL FALSE 401 xy46 BOOL FALSE 402 xy47 BOOL FALSE 403 xy50 BOOL FALSE 404 xy51 BOOL FALSE 405 xy52 BOOL FALSE 406 xy53 BOOL FALSE 407 xy54 BOOL FALSE 408 xy55 BOOL FALSE 409 xy56 BOOL FALSE 410 xy57 BOOL TRUE 411 xy60 BOOL FALSE 412 xy61 BOOL FALSE 413 xy62 BOOL FALSE 414 xy63 BOOL FALSE 415 xy64 BOOL FALSE 416 xy65 BOOL FALSE 417 xy66 BOOL FALSE 418 xy67 BOOL FALSE 419 xy70 BOOL FALSE 420 xy71 BOOL FALSE 421 xy72 BOOL TRUE 422 xy73 BOOL FALSE 423 xy74 BOOL TRUE 424 xy75 BOOL TRUE 425 xy76 BOOL FALSE 426 xy77 BOOL TRUE 427 END 428 XY15 METADATA 429 xy00 BOOL FALSE 430 xy01 BOOL FALSE 431 xy02 BOOL FALSE 432 xy03 BOOL FALSE 433 xy04 BOOL FALSE 434 xy05 BOOL TRUE 435 xy06 BOOL TRUE 436 xy07 BOOL TRUE 437 xy10 BOOL FALSE 438 xy11 BOOL FALSE 439 xy12 BOOL FALSE 440 xy13 BOOL TRUE 441 xy14 BOOL TRUE 442 xy15 BOOL FALSE 443 xy16 BOOL FALSE 444 xy17 BOOL FALSE 445 xy20 BOOL FALSE 446 xy21 BOOL FALSE 447 xy22 BOOL FALSE 448 xy23 BOOL FALSE 449 xy24 BOOL FALSE 450 xy25 BOOL TRUE 451 xy26 BOOL FALSE 452 xy27 BOOL FALSE 453 xy30 BOOL FALSE 454 xy31 BOOL FALSE 455 xy32 BOOL FALSE 456 xy33 BOOL FALSE 457 xy34 BOOL FALSE 458 xy35 BOOL TRUE 459 xy36 BOOL FALSE 460 xy37 BOOL FALSE 461 xy40 BOOL FALSE 462 xy41 BOOL FALSE 463 xy42 BOOL FALSE 464 xy43 BOOL FALSE 465 xy44 BOOL TRUE 466 xy45 BOOL FALSE 467 xy46 BOOL FALSE 468 xy47 BOOL TRUE 469 xy50 BOOL FALSE 470 xy51 BOOL FALSE 471 xy52 BOOL FALSE 472 xy53 BOOL TRUE 473 xy54 BOOL TRUE 474 xy55 BOOL TRUE 475 xy56 BOOL TRUE 476 xy57 BOOL TRUE 477 xy60 BOOL FALSE 478 xy61 BOOL FALSE 479 xy62 BOOL FALSE 480 xy63 BOOL TRUE 481 xy64 BOOL FALSE 482 xy65 BOOL TRUE 483 xy66 BOOL FALSE 484 xy67 BOOL FALSE 485 xy70 BOOL FALSE 486 xy71 BOOL FALSE 487 xy72 BOOL FALSE 488 xy73 BOOL TRUE 489 xy74 BOOL TRUE 490 xy75 BOOL TRUE 491 xy76 BOOL TRUE 492 xy77 BOOL TRUE 493 END 494 XY16 METADATA 495 xy00 BOOL FALSE 496 xy01 BOOL FALSE 497 xy02 BOOL FALSE 498 xy03 BOOL FALSE 499 xy04 BOOL FALSE 500 xy05 BOOL FALSE 501 xy06 BOOL FALSE 502 xy07 BOOL TRUE 503 xy10 BOOL FALSE 504 xy11 BOOL FALSE 505 xy12 BOOL FALSE 506 xy13 BOOL FALSE 507 xy14 BOOL FALSE 508 xy15 BOOL FALSE 509 xy16 BOOL FALSE 510 xy17 BOOL FALSE 511 xy20 BOOL FALSE 512 xy21 BOOL FALSE 513 xy22 BOOL FALSE 514 xy23 BOOL FALSE 515 xy24 BOOL FALSE 516 xy25 BOOL FALSE 517 xy26 BOOL FALSE 518 xy27 BOOL FALSE 519 xy30 BOOL FALSE 520 xy31 BOOL FALSE 521 xy32 BOOL FALSE 522 xy33 BOOL FALSE 523 xy34 BOOL FALSE 524 xy35 BOOL FALSE 525 xy36 BOOL FALSE 526 xy37 BOOL FALSE 527 xy40 BOOL FALSE 528 xy41 BOOL FALSE 529 xy42 BOOL FALSE 530 xy43 BOOL FALSE 531 xy44 BOOL FALSE 532 xy45 BOOL FALSE 533 xy46 BOOL FALSE 534 xy47 BOOL TRUE 535 xy50 BOOL FALSE 536 xy51 BOOL FALSE 537 xy52 BOOL FALSE 538 xy53 BOOL FALSE 539 xy54 BOOL FALSE 540 xy55 BOOL FALSE 541 xy56 BOOL FALSE 542 xy57 BOOL FALSE 543 xy60 BOOL FALSE 544 xy61 BOOL FALSE 545 xy62 BOOL FALSE 546 xy63 BOOL FALSE 547 xy64 BOOL FALSE 548 xy65 BOOL FALSE 549 xy66 BOOL FALSE 550 xy67 BOOL FALSE 551 xy70 BOOL FALSE 552 xy71 BOOL FALSE 553 xy72 BOOL FALSE 554 xy73 BOOL FALSE 555 xy74 BOOL FALSE 556 xy75 BOOL FALSE 557 xy76 BOOL FALSE 558 xy77 BOOL FALSE 559 END 560 XY17 BOOL FALSE 561 XY20 BOOL FALSE 562 XY21 BOOL FALSE 563 XY22 BOOL FALSE 564 XY23 BOOL FALSE 565 XY24 METADATA 566 xy00 BOOL FALSE 567 xy01 BOOL FALSE 568 xy02 BOOL FALSE 569 xy03 BOOL FALSE 570 xy04 BOOL FALSE 571 xy05 BOOL FALSE 572 xy06 BOOL FALSE 573 xy07 BOOL FALSE 574 xy10 BOOL FALSE 575 xy11 BOOL FALSE 576 xy12 BOOL TRUE 577 xy13 BOOL FALSE 578 xy14 BOOL FALSE 579 xy15 BOOL FALSE 580 xy16 BOOL FALSE 581 xy17 BOOL FALSE 582 xy20 BOOL FALSE 583 xy21 BOOL FALSE 584 xy22 BOOL FALSE 585 xy23 BOOL FALSE 586 xy24 BOOL FALSE 587 xy25 BOOL FALSE 588 xy26 BOOL FALSE 589 xy27 BOOL FALSE 590 xy30 BOOL FALSE 591 xy31 BOOL TRUE 592 xy32 BOOL TRUE 593 xy33 BOOL FALSE 594 xy34 BOOL TRUE 595 xy35 BOOL FALSE 596 xy36 BOOL FALSE 597 xy37 BOOL FALSE 598 xy40 BOOL FALSE 599 xy41 BOOL FALSE 600 xy42 BOOL TRUE 601 xy43 BOOL FALSE 602 xy44 BOOL FALSE 603 xy45 BOOL FALSE 604 xy46 BOOL FALSE 605 xy47 BOOL FALSE 606 xy50 BOOL FALSE 607 xy51 BOOL FALSE 608 xy52 BOOL TRUE 609 xy53 BOOL FALSE 610 xy54 BOOL FALSE 611 xy55 BOOL FALSE 612 xy56 BOOL FALSE 613 xy57 BOOL FALSE 614 xy60 BOOL FALSE 615 xy61 BOOL FALSE 616 xy62 BOOL TRUE 617 xy63 BOOL TRUE 618 xy64 BOOL TRUE 619 xy65 BOOL FALSE 620 xy66 BOOL FALSE 621 xy67 BOOL FALSE 622 xy70 BOOL FALSE 623 xy71 BOOL FALSE 624 xy72 BOOL FALSE 625 xy73 BOOL FALSE 626 xy74 BOOL FALSE 627 xy75 BOOL FALSE 628 xy76 BOOL FALSE 629 xy77 BOOL FALSE 630 END 631 XY25 METADATA 632 xy00 BOOL FALSE 633 xy01 BOOL TRUE 634 xy02 BOOL FALSE 635 xy03 BOOL FALSE 636 xy04 BOOL FALSE 637 xy05 BOOL TRUE 638 xy06 BOOL FALSE 639 xy07 BOOL FALSE 640 xy10 BOOL FALSE 641 xy11 BOOL FALSE 642 xy12 BOOL FALSE 643 xy13 BOOL FALSE 644 xy14 BOOL TRUE 645 xy15 BOOL FALSE 646 xy16 BOOL FALSE 647 xy17 BOOL TRUE 648 xy20 BOOL FALSE 649 xy21 BOOL FALSE 650 xy22 BOOL TRUE 651 xy23 BOOL FALSE 652 xy24 BOOL TRUE 653 xy25 BOOL TRUE 654 xy26 BOOL FALSE 655 xy27 BOOL FALSE 656 xy30 BOOL FALSE 657 xy31 BOOL FALSE 658 xy32 BOOL FALSE 659 xy33 BOOL FALSE 660 xy34 BOOL FALSE 661 xy35 BOOL FALSE 662 xy36 BOOL TRUE 663 xy37 BOOL FALSE 664 xy40 BOOL FALSE 665 xy41 BOOL FALSE 666 xy42 BOOL FALSE 667 xy43 BOOL FALSE 668 xy44 BOOL FALSE 669 xy45 BOOL TRUE 670 xy46 BOOL TRUE 671 xy47 BOOL TRUE 672 xy50 BOOL FALSE 673 xy51 BOOL FALSE 674 xy52 BOOL FALSE 675 xy53 BOOL TRUE 676 xy54 BOOL FALSE 677 xy55 BOOL FALSE 678 xy56 BOOL FALSE 679 xy57 BOOL FALSE 680 xy60 BOOL FALSE 681 xy61 BOOL FALSE 682 xy62 BOOL FALSE 683 xy63 BOOL FALSE 684 xy64 BOOL TRUE 685 xy65 BOOL FALSE 686 xy66 BOOL FALSE 687 xy67 BOOL FALSE 688 xy70 BOOL FALSE 689 xy71 BOOL FALSE 690 xy72 BOOL FALSE 691 xy73 BOOL FALSE 692 xy74 BOOL FALSE 693 xy75 BOOL FALSE 694 xy76 BOOL TRUE 695 xy77 BOOL FALSE 696 END 697 XY26 METADATA 698 xy00 BOOL FALSE 699 xy01 BOOL FALSE 700 xy02 BOOL FALSE 701 xy03 BOOL FALSE 702 xy04 BOOL FALSE 703 xy05 BOOL FALSE 704 xy06 BOOL FALSE 705 xy07 BOOL FALSE 706 xy10 BOOL FALSE 707 xy11 BOOL FALSE 708 xy12 BOOL FALSE 709 xy13 BOOL FALSE 710 xy14 BOOL FALSE 711 xy15 BOOL TRUE 712 xy16 BOOL FALSE 713 xy17 BOOL FALSE 714 xy20 BOOL FALSE 715 xy21 BOOL FALSE 716 xy22 BOOL FALSE 717 xy23 BOOL FALSE 718 xy24 BOOL FALSE 719 xy25 BOOL FALSE 720 xy26 BOOL FALSE 721 xy27 BOOL FALSE 722 xy30 BOOL FALSE 723 xy31 BOOL FALSE 724 xy32 BOOL FALSE 725 xy33 BOOL FALSE 726 xy34 BOOL FALSE 727 xy35 BOOL FALSE 728 xy36 BOOL FALSE 729 xy37 BOOL FALSE 730 xy40 BOOL FALSE 731 xy41 BOOL FALSE 732 xy42 BOOL FALSE 733 xy43 BOOL FALSE 734 xy44 BOOL TRUE 735 xy45 BOOL FALSE 736 xy46 BOOL FALSE 737 xy47 BOOL FALSE 738 xy50 BOOL FALSE 739 xy51 BOOL FALSE 740 xy52 BOOL TRUE 741 xy53 BOOL FALSE 742 xy54 BOOL FALSE 743 xy55 BOOL FALSE 744 xy56 BOOL FALSE 745 xy57 BOOL FALSE 746 xy60 BOOL FALSE 747 xy61 BOOL FALSE 748 xy62 BOOL FALSE 749 xy63 BOOL FALSE 750 xy64 BOOL FALSE 751 xy65 BOOL FALSE 752 xy66 BOOL FALSE 753 xy67 BOOL FALSE 754 xy70 BOOL FALSE 755 xy71 BOOL FALSE 756 xy72 BOOL FALSE 757 xy73 BOOL FALSE 758 xy74 BOOL FALSE 759 xy75 BOOL FALSE 760 xy76 BOOL FALSE 761 xy77 BOOL FALSE 762 END 763 XY27 BOOL FALSE 764 XY30 BOOL FALSE 765 XY31 BOOL FALSE 766 XY32 BOOL FALSE 767 XY33 BOOL FALSE 768 XY34 METADATA 769 xy00 BOOL FALSE 770 xy01 BOOL FALSE 771 xy02 BOOL FALSE 772 xy03 BOOL FALSE 773 xy04 BOOL FALSE 774 xy05 BOOL FALSE 775 xy06 BOOL FALSE 776 xy07 BOOL FALSE 777 xy10 BOOL FALSE 778 xy11 BOOL FALSE 779 xy12 BOOL FALSE 780 xy13 BOOL FALSE 781 xy14 BOOL FALSE 782 xy15 BOOL FALSE 783 xy16 BOOL FALSE 784 xy17 BOOL FALSE 785 xy20 BOOL FALSE 786 xy21 BOOL FALSE 787 xy22 BOOL FALSE 788 xy23 BOOL FALSE 789 xy24 BOOL FALSE 790 xy25 BOOL FALSE 791 xy26 BOOL FALSE 792 xy27 BOOL FALSE 793 xy30 BOOL FALSE 794 xy31 BOOL FALSE 795 xy32 BOOL FALSE 796 xy33 BOOL FALSE 797 xy34 BOOL FALSE 798 xy35 BOOL FALSE 799 xy36 BOOL FALSE 800 xy37 BOOL FALSE 801 xy40 BOOL FALSE 802 xy41 BOOL FALSE 803 xy42 BOOL FALSE 804 xy43 BOOL FALSE 805 xy44 BOOL FALSE 806 xy45 BOOL FALSE 807 xy46 BOOL FALSE 808 xy47 BOOL TRUE 809 xy50 BOOL FALSE 810 xy51 BOOL FALSE 811 xy52 BOOL FALSE 812 xy53 BOOL FALSE 813 xy54 BOOL FALSE 814 xy55 BOOL TRUE 815 xy56 BOOL FALSE 816 xy57 BOOL FALSE 817 xy60 BOOL FALSE 818 xy61 BOOL FALSE 819 xy62 BOOL FALSE 820 xy63 BOOL FALSE 821 xy64 BOOL TRUE 822 xy65 BOOL FALSE 823 xy66 BOOL TRUE 824 xy67 BOOL FALSE 825 xy70 BOOL FALSE 826 xy71 BOOL FALSE 827 xy72 BOOL TRUE 828 xy73 BOOL TRUE 829 xy74 BOOL TRUE 830 xy75 BOOL FALSE 831 xy76 BOOL TRUE 832 xy77 BOOL TRUE 833 END 834 XY35 BOOL FALSE 835 XY36 METADATA 836 xy00 BOOL FALSE 837 xy01 BOOL FALSE 838 xy02 BOOL FALSE 839 xy03 BOOL FALSE 840 xy04 BOOL FALSE 841 xy05 BOOL FALSE 842 xy06 BOOL FALSE 843 xy07 BOOL FALSE 844 xy10 BOOL FALSE 845 xy11 BOOL FALSE 846 xy12 BOOL FALSE 847 xy13 BOOL FALSE 848 xy14 BOOL FALSE 849 xy15 BOOL FALSE 850 xy16 BOOL FALSE 851 xy17 BOOL FALSE 852 xy20 BOOL FALSE 853 xy21 BOOL FALSE 854 xy22 BOOL FALSE 855 xy23 BOOL FALSE 856 xy24 BOOL FALSE 857 xy25 BOOL FALSE 858 xy26 BOOL FALSE 859 xy27 BOOL FALSE 860 xy30 BOOL FALSE 861 xy31 BOOL FALSE 862 xy32 BOOL FALSE 863 xy33 BOOL FALSE 864 xy34 BOOL FALSE 865 xy35 BOOL FALSE 866 xy36 BOOL FALSE 867 xy37 BOOL FALSE 868 xy40 BOOL FALSE 869 xy41 BOOL FALSE 870 xy42 BOOL FALSE 871 xy43 BOOL TRUE 872 xy44 BOOL FALSE 873 xy45 BOOL FALSE 874 xy46 BOOL FALSE 875 xy47 BOOL FALSE 876 xy50 BOOL FALSE 877 xy51 BOOL FALSE 878 xy52 BOOL FALSE 879 xy53 BOOL FALSE 880 xy54 BOOL FALSE 881 xy55 BOOL FALSE 882 xy56 BOOL FALSE 883 xy57 BOOL FALSE 884 xy60 BOOL FALSE 885 xy61 BOOL FALSE 886 xy62 BOOL FALSE 887 xy63 BOOL FALSE 888 xy64 BOOL FALSE 889 xy65 BOOL FALSE 890 xy66 BOOL FALSE 891 xy67 BOOL FALSE 892 xy70 BOOL FALSE 893 xy71 BOOL FALSE 894 xy72 BOOL FALSE 895 xy73 BOOL FALSE 896 xy74 BOOL FALSE 897 xy75 BOOL FALSE 898 xy76 BOOL FALSE 899 xy77 BOOL FALSE 900 END 901 XY37 METADATA 902 xy00 BOOL FALSE 903 xy01 BOOL FALSE 904 xy02 BOOL FALSE 905 xy03 BOOL FALSE 906 xy04 BOOL FALSE 907 xy05 BOOL FALSE 908 xy06 BOOL FALSE 909 xy07 BOOL FALSE 910 xy10 BOOL FALSE 911 xy11 BOOL FALSE 912 xy12 BOOL FALSE 913 xy13 BOOL FALSE 914 xy14 BOOL FALSE 915 xy15 BOOL FALSE 916 xy16 BOOL FALSE 917 xy17 BOOL FALSE 918 xy20 BOOL FALSE 919 xy21 BOOL FALSE 920 xy22 BOOL FALSE 921 xy23 BOOL FALSE 922 xy24 BOOL FALSE 923 xy25 BOOL FALSE 924 xy26 BOOL FALSE 925 xy27 BOOL FALSE 926 xy30 BOOL FALSE 927 xy31 BOOL FALSE 928 xy32 BOOL FALSE 929 xy33 BOOL FALSE 930 xy34 BOOL FALSE 931 xy35 BOOL FALSE 932 xy36 BOOL FALSE 933 xy37 BOOL TRUE 934 xy40 BOOL FALSE 935 xy41 BOOL FALSE 936 xy42 BOOL FALSE 937 xy43 BOOL TRUE 938 xy44 BOOL FALSE 939 xy45 BOOL FALSE 940 xy46 BOOL FALSE 941 xy47 BOOL TRUE 942 xy50 BOOL FALSE 943 xy51 BOOL FALSE 944 xy52 BOOL FALSE 945 xy53 BOOL FALSE 946 xy54 BOOL FALSE 947 xy55 BOOL FALSE 948 xy56 BOOL FALSE 949 xy57 BOOL FALSE 950 xy60 BOOL TRUE 951 xy61 BOOL FALSE 952 xy62 BOOL TRUE 953 xy63 BOOL TRUE 954 xy64 BOOL FALSE 955 xy65 BOOL FALSE 956 xy66 BOOL FALSE 957 xy67 BOOL FALSE 958 xy70 BOOL TRUE 959 xy71 BOOL FALSE 960 xy72 BOOL TRUE 961 xy73 BOOL TRUE 962 xy74 BOOL FALSE 963 xy75 BOOL TRUE 964 xy76 BOOL TRUE 965 xy77 BOOL FALSE 966 END 967 XY40 METADATA 968 xy00 BOOL FALSE 969 xy01 BOOL FALSE 970 xy02 BOOL FALSE 971 xy03 BOOL FALSE 972 xy04 BOOL FALSE 973 xy05 BOOL FALSE 974 xy06 BOOL FALSE 975 xy07 BOOL FALSE 976 xy10 BOOL FALSE 977 xy11 BOOL FALSE 978 xy12 BOOL FALSE 979 xy13 BOOL FALSE 980 xy14 BOOL FALSE 981 xy15 BOOL FALSE 982 xy16 BOOL FALSE 983 xy17 BOOL FALSE 984 xy20 BOOL FALSE 985 xy21 BOOL FALSE 986 xy22 BOOL FALSE 987 xy23 BOOL FALSE 988 xy24 BOOL FALSE 989 xy25 BOOL FALSE 990 xy26 BOOL FALSE 991 xy27 BOOL FALSE 992 xy30 BOOL FALSE 993 xy31 BOOL FALSE 994 xy32 BOOL TRUE 995 xy33 BOOL FALSE 996 xy34 BOOL TRUE 997 xy35 BOOL TRUE 998 xy36 BOOL FALSE 999 xy37 BOOL FALSE 1000 xy40 BOOL FALSE 1001 xy41 BOOL FALSE 1002 xy42 BOOL FALSE 1003 xy43 BOOL FALSE 1004 xy44 BOOL FALSE 1005 xy45 BOOL FALSE 1006 xy46 BOOL FALSE 1007 xy47 BOOL FALSE 1008 xy50 BOOL FALSE 1009 xy51 BOOL FALSE 1010 xy52 BOOL FALSE 1011 xy53 BOOL FALSE 1012 xy54 BOOL FALSE 1013 xy55 BOOL TRUE 1014 xy56 BOOL TRUE 1015 xy57 BOOL TRUE 1016 xy60 BOOL FALSE 1017 xy61 BOOL FALSE 1018 xy62 BOOL FALSE 1019 xy63 BOOL FALSE 1020 xy64 BOOL FALSE 1021 xy65 BOOL FALSE 1022 xy66 BOOL TRUE 1023 xy67 BOOL FALSE 1024 xy70 BOOL FALSE 1025 xy71 BOOL FALSE 1026 xy72 BOOL FALSE 1027 xy73 BOOL TRUE 1028 xy74 BOOL TRUE 1029 xy75 BOOL TRUE 1030 xy76 BOOL TRUE 1031 xy77 BOOL TRUE 1032 END 1033 XY41 BOOL FALSE 1034 XY42 BOOL FALSE 1035 XY43 METADATA 1036 xy00 BOOL FALSE 1037 xy01 BOOL FALSE 1038 xy02 BOOL FALSE 1039 xy03 BOOL FALSE 1040 xy04 BOOL FALSE 1041 xy05 BOOL FALSE 1042 xy06 BOOL FALSE 1043 xy07 BOOL FALSE 1044 xy10 BOOL FALSE 1045 xy11 BOOL FALSE 1046 xy12 BOOL FALSE 1047 xy13 BOOL FALSE 1048 xy14 BOOL FALSE 1049 xy15 BOOL FALSE 1050 xy16 BOOL FALSE 1051 xy17 BOOL FALSE 1052 xy20 BOOL FALSE 1053 xy21 BOOL FALSE 1054 xy22 BOOL FALSE 1055 xy23 BOOL FALSE 1056 xy24 BOOL FALSE 1057 xy25 BOOL FALSE 1058 xy26 BOOL FALSE 1059 xy27 BOOL TRUE 1060 xy30 BOOL FALSE 1061 xy31 BOOL FALSE 1062 xy32 BOOL FALSE 1063 xy33 BOOL FALSE 1064 xy34 BOOL FALSE 1065 xy35 BOOL FALSE 1066 xy36 BOOL FALSE 1067 xy37 BOOL TRUE 1068 xy40 BOOL FALSE 1069 xy41 BOOL FALSE 1070 xy42 BOOL FALSE 1071 xy43 BOOL FALSE 1072 xy44 BOOL FALSE 1073 xy45 BOOL FALSE 1074 xy46 BOOL FALSE 1075 xy47 BOOL FALSE 1076 xy50 BOOL FALSE 1077 xy51 BOOL FALSE 1078 xy52 BOOL FALSE 1079 xy53 BOOL FALSE 1080 xy54 BOOL TRUE 1081 xy55 BOOL FALSE 1082 xy56 BOOL FALSE 1083 xy57 BOOL FALSE 1084 xy60 BOOL FALSE 1085 xy61 BOOL TRUE 1086 xy62 BOOL FALSE 1087 xy63 BOOL FALSE 1088 xy64 BOOL FALSE 1089 xy65 BOOL FALSE 1090 xy66 BOOL FALSE 1091 xy67 BOOL TRUE 1092 xy70 BOOL FALSE 1093 xy71 BOOL FALSE 1094 xy72 BOOL FALSE 1095 xy73 BOOL FALSE 1096 xy74 BOOL FALSE 1097 xy75 BOOL TRUE 1098 xy76 BOOL FALSE 1099 xy77 BOOL FALSE 1100 END 1101 XY44 BOOL FALSE 1102 XY45 BOOL FALSE 1103 XY46 BOOL FALSE 1104 XY47 BOOL FALSE 1105 XY50 BOOL FALSE 1106 XY51 BOOL FALSE 1107 XY52 BOOL FALSE 1108 XY53 BOOL FALSE 1109 XY54 BOOL FALSE 1110 XY55 BOOL FALSE 1111 XY56 BOOL FALSE 1112 XY57 BOOL FALSE 1113 XY60 BOOL FALSE 1114 XY61 BOOL FALSE 1115 XY62 METADATA 1116 xy00 BOOL FALSE 1117 xy01 BOOL FALSE 1118 xy02 BOOL FALSE 1119 xy03 BOOL FALSE 1120 xy04 BOOL FALSE 1121 xy05 BOOL FALSE 1122 xy06 BOOL FALSE 1123 xy07 BOOL FALSE 1124 xy10 BOOL FALSE 1125 xy11 BOOL FALSE 1126 xy12 BOOL FALSE 1127 xy13 BOOL FALSE 1128 xy14 BOOL FALSE 1129 xy15 BOOL FALSE 1130 xy16 BOOL FALSE 1131 xy17 BOOL FALSE 1132 xy20 BOOL FALSE 1133 xy21 BOOL FALSE 1134 xy22 BOOL FALSE 1135 xy23 BOOL FALSE 1136 xy24 BOOL FALSE 1137 xy25 BOOL FALSE 1138 xy26 BOOL FALSE 1139 xy27 BOOL FALSE 1140 xy30 BOOL FALSE 1141 xy31 BOOL FALSE 1142 xy32 BOOL FALSE 1143 xy33 BOOL FALSE 1144 xy34 BOOL FALSE 1145 xy35 BOOL FALSE 1146 xy36 BOOL FALSE 1147 xy37 BOOL FALSE 1148 xy40 BOOL FALSE 1149 xy41 BOOL FALSE 1150 xy42 BOOL FALSE 1151 xy43 BOOL FALSE 1152 xy44 BOOL TRUE 1153 xy45 BOOL FALSE 1154 xy46 BOOL FALSE 1155 xy47 BOOL FALSE 1156 xy50 BOOL FALSE 1157 xy51 BOOL FALSE 1158 xy52 BOOL FALSE 1159 xy53 BOOL FALSE 1160 xy54 BOOL FALSE 1161 xy55 BOOL FALSE 1162 xy56 BOOL FALSE 1163 xy57 BOOL FALSE 1164 xy60 BOOL FALSE 1165 xy61 BOOL FALSE 1166 xy62 BOOL FALSE 1167 xy63 BOOL FALSE 1168 xy64 BOOL FALSE 1169 xy65 BOOL FALSE 1170 xy66 BOOL FALSE 1171 xy67 BOOL TRUE 1172 xy70 BOOL FALSE 1173 xy71 BOOL FALSE 1174 xy72 BOOL FALSE 1175 xy73 BOOL FALSE 1176 xy74 BOOL TRUE 1177 xy75 BOOL FALSE 1178 xy76 BOOL TRUE 1179 xy77 BOOL FALSE 1180 END 1181 XY63 BOOL FALSE 1182 XY64 BOOL FALSE 1183 XY65 BOOL FALSE 1184 XY66 BOOL FALSE 1185 XY67 BOOL FALSE 1186 XY71 BOOL FALSE 1187 XY72 METADATA 1188 xy00 BOOL FALSE 1189 xy01 BOOL FALSE 1190 xy02 BOOL FALSE 1191 xy03 BOOL FALSE 1192 xy04 BOOL FALSE 1193 xy05 BOOL FALSE 1194 xy06 BOOL FALSE 1195 xy07 BOOL FALSE 1196 xy10 BOOL FALSE 1197 xy11 BOOL FALSE 1198 xy12 BOOL FALSE 1199 xy13 BOOL FALSE 1200 xy14 BOOL FALSE 1201 xy15 BOOL FALSE 1202 xy16 BOOL FALSE 1203 xy17 BOOL FALSE 1204 xy20 BOOL FALSE 1205 xy21 BOOL FALSE 1206 xy22 BOOL FALSE 1207 xy23 BOOL FALSE 1208 xy24 BOOL FALSE 1209 xy25 BOOL FALSE 1210 xy26 BOOL FALSE 1211 xy27 BOOL FALSE 1212 xy30 BOOL FALSE 1213 xy31 BOOL FALSE 1214 xy32 BOOL FALSE 1215 xy33 BOOL FALSE 1216 xy34 BOOL FALSE 1217 xy35 BOOL FALSE 1218 xy36 BOOL FALSE 1219 xy37 BOOL FALSE 1220 xy40 BOOL FALSE 1221 xy41 BOOL FALSE 1222 xy42 BOOL FALSE 1223 xy43 BOOL FALSE 1224 xy44 BOOL FALSE 1225 xy45 BOOL FALSE 1226 xy46 BOOL FALSE 1227 xy47 BOOL FALSE 1228 xy50 BOOL FALSE 1229 xy51 BOOL FALSE 1230 xy52 BOOL FALSE 1231 xy53 BOOL FALSE 1232 xy54 BOOL FALSE 1233 xy55 BOOL FALSE 1234 xy56 BOOL FALSE 1235 xy57 BOOL FALSE 1236 xy60 BOOL FALSE 1237 xy61 BOOL FALSE 1238 xy62 BOOL FALSE 1239 xy63 BOOL FALSE 1240 xy64 BOOL FALSE 1241 xy65 BOOL FALSE 1242 xy66 BOOL FALSE 1243 xy67 BOOL FALSE 1244 xy70 BOOL FALSE 1245 xy71 BOOL FALSE 1246 xy72 BOOL FALSE 1247 xy73 BOOL FALSE 1248 xy74 BOOL FALSE 1249 xy75 BOOL FALSE 1250 xy76 BOOL FALSE 1251 xy77 BOOL TRUE 1252 END 1253 XY73 METADATA 1254 xy00 BOOL FALSE 1255 xy01 BOOL FALSE 1256 xy02 BOOL FALSE 1257 xy03 BOOL TRUE 1258 xy04 BOOL TRUE 1259 xy05 BOOL FALSE 1260 xy06 BOOL FALSE 1261 xy07 BOOL FALSE 1262 xy10 BOOL FALSE 1263 xy11 BOOL FALSE 1264 xy12 BOOL FALSE 1265 xy13 BOOL FALSE 1266 xy14 BOOL FALSE 1267 xy15 BOOL FALSE 1268 xy16 BOOL FALSE 1269 xy17 BOOL FALSE 1270 xy20 BOOL FALSE 1271 xy21 BOOL FALSE 1272 xy22 BOOL FALSE 1273 xy23 BOOL FALSE 1274 xy24 BOOL FALSE 1275 xy25 BOOL FALSE 1276 xy26 BOOL FALSE 1277 xy27 BOOL FALSE 1278 xy30 BOOL FALSE 1279 xy31 BOOL FALSE 1280 xy32 BOOL FALSE 1281 xy33 BOOL FALSE 1282 xy34 BOOL FALSE 1283 xy35 BOOL FALSE 1284 xy36 BOOL TRUE 1285 xy37 BOOL FALSE 1286 xy40 BOOL FALSE 1287 xy41 BOOL FALSE 1288 xy42 BOOL FALSE 1289 xy43 BOOL FALSE 1290 xy44 BOOL FALSE 1291 xy45 BOOL FALSE 1292 xy46 BOOL FALSE 1293 xy47 BOOL FALSE 1294 xy50 BOOL FALSE 1295 xy51 BOOL FALSE 1296 xy52 BOOL FALSE 1297 xy53 BOOL FALSE 1298 xy54 BOOL FALSE 1299 xy55 BOOL FALSE 1300 xy56 BOOL FALSE 1301 xy57 BOOL FALSE 1302 xy60 BOOL FALSE 1303 xy61 BOOL FALSE 1304 xy62 BOOL FALSE 1305 xy63 BOOL FALSE 1306 xy64 BOOL FALSE 1307 xy65 BOOL FALSE 1308 xy66 BOOL FALSE 1309 xy67 BOOL FALSE 1310 xy70 BOOL FALSE 1311 xy71 BOOL FALSE 1312 xy72 BOOL FALSE 1313 xy73 BOOL FALSE 1314 xy74 BOOL FALSE 1315 xy75 BOOL FALSE 1316 xy76 BOOL FALSE 1317 xy77 BOOL FALSE 1318 END 1319 XY74 BOOL FALSE 1320 XY75 BOOL FALSE 1321 XY76 BOOL FALSE 1322 END 285 1323 286 1324 TILTYSTREAK.BY.CLASS METADATA # apply the 'tiltystreak' tool … … 415 1453 FLAT BOOL TRUE # Flat-field normalisation 416 1454 MASK BOOL TRUE # Mask bad pixels 417 MASK.BURNTOOL BOOL TRUE # Mask potential burntool trails 418 PATTERN BOOL TRUE # Subtract pattern noise 1455 MASK.BURNTOOL BOOL TRUE # Mask potential burntool trails 1456 PATTERN.ROW BOOL TRUE # Row pattern correction 1457 PATTERN.CELL BOOL TRUE # Cell pattern correction 419 1458 FRINGE BOOL FALSE # Fringe subtraction 420 1459 BIN1.FITS BOOL TRUE # Save 1st binned chip image? … … 1191 2230 MASK BOOL TRUE # Mask bad pixels 1192 2231 FRINGE BOOL FALSE # Fringe subtraction 1193 PATTERN BOOL TRUE # Subtract pattern noise 2232 PATTERN.ROW BOOL TRUE # Row pattern correction 2233 PATTERN.CELL BOOL TRUE # Cell pattern correction 1194 2234 BIN1.FITS BOOL TRUE # Save 1st binned chip image? 1195 2235 BIN2.FITS BOOL TRUE # Save 2nd binned chip image? … … 1228 2268 CROSSTALK.MEASURE BOOL TRUE # Subtract model background? 1229 2269 TILTYSTREAK.APPLY BOOL FALSE # apply the 'tiltystreak' tool 1230 PATTERN BOOL TRUE # Subtract pattern noise 2270 PATTERN.ROW BOOL TRUE # Row pattern correction 2271 PATTERN.CELL BOOL TRUE # Cell pattern correction 1231 2272 NOISEMAP BOOL TRUE # Apply read noise map 1232 2273 END -
branches/eam_branches/20091201/ippconfig/recipes/ppImage.config
r26727 r26776 18 18 MASK.BURNTOOL BOOL FALSE # Mask potential burntool trails 19 19 VARIANCE.BUILD BOOL FALSE # Build internal variance image 20 PATTERN BOOL FALSE # Fit and remove pattern noise? 21 PATTERN.SUBSET METADATA 20 PATTERN.ROW BOOL FALSE # Row pattern correction 21 PATTERN.ROW.SUBSET METADATA # Menu of chips and/or cells for row pattern correction 22 END 23 PATTERN.CELL BOOL FALSE # Cell pattern correction 24 PATTERN.CELL.SUBSET METADATA # Menu of chips and/or cells for cell pattern correction 22 25 END 23 26 FRINGE BOOL FALSE # Fringe subtraction … … 90 93 91 94 # Pattern subtraction options 92 PATTERN.ORDER S32 2 # Polynomial order 93 PATTERN.ITER S32 4 # Rejection iterations 94 PATTERN.REJ F32 2.5 # Rejection threshold 95 PATTERN.THRESH F32 20.0 # Ignore threshold 96 PATTERN.MEAN STR SAMPLE_MEAN # Statistic for mean 97 PATTERN.STDEV STR SAMPLE_STDEV # Statistic for standard deviation 95 PATTERN.ROW.ORDER S32 2 # Polynomial order for row pattern 96 PATTERN.ROW.ITER S32 4 # Rejection iterations for row pattern 97 PATTERN.ROW.REJ F32 2.5 # Rejection threshold for row pattern 98 PATTERN.ROW.THRESH F32 20.0 # Ignore threshold for row pattern 99 PATTERN.ROW.MEAN STR SAMPLE_MEAN # Statistic for mean for row pattern 100 PATTERN.ROW.STDEV STR SAMPLE_STDEV # Statistic for standard deviation for row pattern 101 PATTERN.CELL.BG STR ROBUST_MEDIAN # Statistic for background for cell pattern 102 PATTERN.CELL.MEAN STR SAMPLE_MEDIAN # Statistic for mean for cell pattern 98 103 99 104 # Fringe subtraction options -
branches/eam_branches/20091201/ppImage/src/ppImage.h
r25930 r26776 38 38 bool doShutter; // Shutter correction 39 39 bool doFlat; // Flat-field normalisation 40 bool doPattern; // Pattern noise subtraction 40 bool doPatternRow; // Row pattern correction 41 bool doPatternCell; // Cell pattern correction 41 42 bool doFringe; // Fringe subtraction 42 43 bool doPhotom; // Source identification and photometry … … 95 96 float fringeKeep; // Fringe keep fraction 96 97 97 // Pattern noise subtraction 98 int patternOrder; // Polynomial order 99 int patternIter; // Clipping iterations 100 float patternRej; // Clipping threshold 101 float patternThresh; // Ignore threshold 102 psStatsOptions patternMean; // Statistic for mean 103 psStatsOptions patternStdev; // Statistic for stdev 98 // Pattern correction 99 int patternRowOrder; // Polynomial order 100 int patternRowIter; // Clipping iterations 101 float patternRowRej; // Clipping threshold 102 float patternRowThresh; // Ignore threshold 103 psStatsOptions patternRowMean; // Statistic for mean 104 psStatsOptions patternRowStdev; // Statistic for stdev 105 psStatsOptions patternCellBG; // statistic for background 106 psStatsOptions patternCellMean; // Statistic for mean 104 107 105 108 int remnanceSize; // Size for remnance detection -
branches/eam_branches/20091201/ppImage/src/ppImageDetrendPattern.c
r26695 r26776 16 16 pmCell *cell = NULL; 17 17 18 assert (options->doPattern); // do not call if not needed 19 assert (inputView->chip != -1); 20 assert (inputView->cell == -1); 21 assert (inputView->readout == -1); 22 bool status; 23 pmFPAfile *input = psMetadataLookupPtr(&status, config->files, "PPIMAGE.INPUT"); 18 assert(options->doPatternRow || options->doPatternCell); // do not call if not needed 19 assert(inputView->chip != -1); 20 assert(inputView->cell == -1); 21 assert(inputView->readout == -1); 24 22 25 pmFPAview *view = pmFPAviewAlloc(0); // View for local processing 26 *view = *inputView; 23 if (options->doPatternRow) { 24 bool status; 25 pmFPAfile *input = psMetadataLookupPtr(&status, config->files, "PPIMAGE.INPUT"); 26 pmFPAview *view = pmFPAviewAlloc(0); // View for local processing 27 *view = *inputView; 28 while ((cell = pmFPAviewNextCell(view, input->fpa, 1)) != NULL) { 29 if (!cell->process || !cell->file_exists) { 30 continue; 31 } 32 if (!pmFPAfileIOChecks(config, view, PM_FPA_BEFORE)) { 33 ESCAPE("load failure for Cell"); 34 } 27 35 28 while ((cell = pmFPAviewNextCell(view, input->fpa, 1)) != NULL) { 29 if (!cell->process || !cell->file_exists) { 30 continue; 31 } 32 if (!pmFPAfileIOChecks(config, view, PM_FPA_BEFORE)) { 33 ESCAPE("load failure for Cell"); 34 } 35 36 if (!cell->data_exists) { 37 continue; 38 } 39 40 if (cell->readouts->n > 1) { 41 psWarning ("Skipping Video Cell for ppImageDetrendPatternApply"); 42 continue; 43 } 44 45 psMetadataItem *doPattern = pmConfigRecipeValueByView(config, RECIPE_NAME, "PATTERN.SUBSET", 46 chip->parent, view); // Do we do pattern sub? 47 if (!doPattern || doPattern->type != PS_DATA_BOOL) { 48 ESCAPE("Unable to determine whether pattern matching should be applied."); 49 } 50 if (!doPattern->data.B) { 51 continue; 52 } 53 54 psLogMsg("ppImage", PS_LOG_INFO, "Performing pattern subtraction for %d,%d\n", view->chip, view->cell); 55 56 // process each of the readouts 57 pmReadout *readout; // Readout from cell 58 while ((readout = pmFPAviewNextReadout (view, input->fpa, 1)) != NULL) { 59 if (!pmFPAfileIOChecks(config, view, PM_FPA_BEFORE)) { 60 ESCAPE("load failure for Readout"); 61 } 62 if (!readout->data_exists) { 36 if (!cell->data_exists) { 63 37 continue; 64 38 } 65 39 66 // perfore pattern correction 67 if (!pmPatternRow(readout, options->patternOrder, options->patternIter, options->patternRej, 68 options->patternThresh, options->patternMean, options->patternStdev, 69 options->maskValue, options->darkMask)) { 70 psFree(view); 71 return(false); 40 if (cell->readouts->n > 1) { 41 psWarning ("Skipping Video Cell for ppImageDetrendPatternApply"); 42 continue; 43 } 44 45 psMetadataItem *doPattern = pmConfigRecipeValueByView(config, RECIPE_NAME, "PATTERN.ROW.SUBSET", 46 chip->parent, view); // Do pattern corr? 47 if (!doPattern || doPattern->type != PS_DATA_BOOL) { 48 ESCAPE("Unable to determine whether row pattern correction should be applied."); 49 } 50 if (!doPattern->data.B) { 51 continue; 52 } 53 54 psLogMsg("ppImage", PS_LOG_INFO, "Performing row pattern correction for %d,%d\n", 55 view->chip, view->cell); 56 57 // process each of the readouts 58 pmReadout *readout; // Readout from cell 59 while ((readout = pmFPAviewNextReadout (view, input->fpa, 1)) != NULL) { 60 if (!pmFPAfileIOChecks(config, view, PM_FPA_BEFORE)) { 61 ESCAPE("load failure for Readout"); 62 } 63 if (!readout->data_exists) { 64 continue; 65 } 66 67 // Perform pattern correction 68 if (!pmPatternRow(readout, options->patternRowOrder, options->patternRowIter, 69 options->patternRowRej, options->patternRowThresh, options->patternRowMean, 70 options->patternRowStdev, options->maskValue, options->darkMask)) { 71 psFree(view); 72 return(false); 73 } 72 74 } 73 75 } 76 psFree(view); 74 77 } 75 78 76 psFree(view); 79 if (options->doPatternCell) { 80 int numCells = chip->cells->n; // Number of cells 81 psVector *tweak = psVectorAlloc(numCells, PS_TYPE_U8); // Tweak cell? 82 pmFPAview *view = pmFPAviewAlloc(0); // View for local processing 83 *view = *inputView; 84 for (int i = 0; i < chip->cells->n; i++) { 85 view->cell = i; 86 psMetadataItem *doPattern = pmConfigRecipeValueByView(config, RECIPE_NAME, "PATTERN.CELL.SUBSET", 87 chip->parent, view); // Do pattern sub? 88 if (!doPattern || doPattern->type != PS_DATA_BOOL) { 89 ESCAPE("Unable to determine whether cell pattern correction should be applied."); 90 } 91 if (doPattern->data.B) { 92 tweak->data.U8[i] = 0xFF; 93 } 94 } 95 96 // Tweak the cells 97 if (!pmPatternCell(chip, tweak, options->patternCellBG, options->patternCellMean, 98 options->maskValue, options->darkMask)) { 99 psFree(tweak); 100 psFree(view); 101 return false; 102 } 103 psFree(tweak); 104 psFree(view); 105 } 106 77 107 return(true); 78 108 } -
branches/eam_branches/20091201/ppImage/src/ppImageLoop.c
r26693 r26776 163 163 } 164 164 165 // Apply the pattern noisecorrection166 if (options->doPattern ) {165 // Apply the pattern correction 166 if (options->doPatternRow || options->doPatternCell) { 167 167 if (!ppImageDetrendPatternApply(config,chip,view,options)) { 168 168 ESCAPE("Unable to apply pattern corrections"); -
branches/eam_branches/20091201/ppImage/src/ppImageOptions.c
r25930 r26776 32 32 options->doShutter = false; // Shutter correction 33 33 options->doFlat = false; // Flat-field normalisation 34 options->doPattern = false; // Pattern noise subtraction 34 options->doPatternRow = false; // Row pattern correction 35 options->doPatternCell = false; // Cell pattern correction 35 36 options->doFringe = false; // Fringe subtraction 36 37 options->doPhotom = false; // Source identification and photometry … … 90 91 options->fringeKeep = 1.0; // Fringe keep fraction 91 92 92 // Pattern noise values 93 94 options->patternOrder = 0; // Polynomial order 95 options->patternIter = 0; // Clipping iterations 96 options->patternRej = NAN; // Clipping rejection threshold 97 options->patternThresh = NAN; // Threshold for ignoring pixels 98 options->patternMean = PS_STAT_NONE; // Statistic for mean 99 options->patternStdev = PS_STAT_NONE; // Statistic for standard deviation 93 // Pattern correction values 94 95 options->patternRowOrder = 0; // Polynomial order 96 options->patternRowIter = 0; // Clipping iterations 97 options->patternRowRej = NAN; // Clipping rejection threshold 98 options->patternRowThresh = NAN; // Threshold for ignoring pixels 99 options->patternRowMean = PS_STAT_NONE; // Statistic for mean 100 options->patternRowStdev = PS_STAT_NONE; // Statistic for standard deviation 101 options->patternCellBG = PS_STAT_NONE; // Statistic for background 102 options->patternCellMean = PS_STAT_NONE; // Statistic for mean 100 103 101 104 // Remnance values … … 238 241 options->doFringe = psMetadataLookupBool(NULL, recipe, "FRINGE"); 239 242 options->doShutter = psMetadataLookupBool(NULL, recipe, "SHUTTER"); 240 options->doPattern = psMetadataLookupBool(NULL, recipe, "PATTERN"); 243 options->doPatternRow = psMetadataLookupBool(NULL, recipe, "PATTERN.ROW"); 244 options->doPatternCell = psMetadataLookupBool(NULL, recipe, "PATTERN.CELL"); 241 245 242 246 options->doStats = false; … … 250 254 options->burntoolTrails = psMetadataLookupS32(&status, recipe, "BURNTOOL.TRAILS"); 251 255 psTrace("psModules.detrend", 7, "burntoolTrails: %d BURNTOOL.TRAILS: %d Status: %d\n", 252 options->burntoolTrails,psMetadataLookupS32(&status,recipe,"BURNTOOL.TRAILS"),status);256 options->burntoolTrails,psMetadataLookupS32(&status,recipe,"BURNTOOL.TRAILS"),status); 253 257 if (!status) { 254 258 psWarning("BURNTOOL.TRAILS not found in recipe: setting to default value.\n"); 255 259 } 256 260 257 261 // binned image options 258 262 options->xBin1 = psMetadataLookupS32(&status, recipe, "BIN1.XBIN"); 259 263 if (!status) { 260 264 psWarning("BIN1.XBIN not found in recipe: setting to default value.\n"); 261 options->xBin1 = 4;265 options->xBin1 = 4; 262 266 } 263 267 options->yBin1 = psMetadataLookupS32(&status, recipe, "BIN1.YBIN"); … … 320 324 options->fringeKeep = psMetadataLookupF32(NULL, recipe, "FRINGE.KEEP"); 321 325 322 // Pattern noise 323 options->patternOrder = psMetadataLookupS32(NULL, recipe, "PATTERN.ORDER"); 324 options->patternIter = psMetadataLookupS32(NULL, recipe, "PATTERN.ITER"); 325 options->patternRej = psMetadataLookupF32(NULL, recipe, "PATTERN.REJ"); 326 options->patternThresh = psMetadataLookupF32(NULL, recipe, "PATTERN.THRESH"); 327 options->patternMean = psStatsOptionFromString(psMetadataLookupStr(NULL, recipe, "PATTERN.MEAN")); 328 options->patternStdev = psStatsOptionFromString(psMetadataLookupStr(NULL, recipe, "PATTERN.STDEV")); 326 // Pattern correction 327 options->patternRowOrder = psMetadataLookupS32(NULL, recipe, "PATTERN.ROW.ORDER"); 328 options->patternRowIter = psMetadataLookupS32(NULL, recipe, "PATTERN.ROW.ITER"); 329 options->patternRowRej = psMetadataLookupF32(NULL, recipe, "PATTERN.ROW.REJ"); 330 options->patternRowThresh = psMetadataLookupF32(NULL, recipe, "PATTERN.ROW.THRESH"); 331 options->patternRowMean = psStatsOptionFromString(psMetadataLookupStr(NULL, recipe, "PATTERN.ROW.MEAN")); 332 options->patternRowStdev = psStatsOptionFromString(psMetadataLookupStr(NULL, recipe, "PATTERN.ROW.STDEV")); 333 options->patternCellBG = psStatsOptionFromString(psMetadataLookupStr(NULL, recipe, "PATTERN.CELL.BG")); 334 options->patternCellMean = psStatsOptionFromString(psMetadataLookupStr(NULL, recipe, "PATTERN.CELL.MEAN")); 329 335 330 336 // Remnance options -
branches/eam_branches/20091201/psModules/src/detrend/pmPattern.c
r26731 r26776 127 127 return true; 128 128 } 129 130 131 132 133 bool pmPatternCell(pmChip *chip, const psVector *tweak, psStatsOptions bgStat, psStatsOptions cellStat, 134 psImageMaskType maskVal, psImageMaskType maskBad) 135 { 136 PS_ASSERT_PTR_NON_NULL(chip, false); 137 PS_ASSERT_VECTOR_NON_NULL(tweak, false); 138 PS_ASSERT_VECTOR_SIZE(tweak, chip->cells->n, false); 139 PS_ASSERT_VECTOR_TYPE(tweak, PS_TYPE_U8, false); 140 141 int numCells = tweak->n; // Number of cells 142 143 psVector *mean = psVectorAlloc(numCells, PS_TYPE_F32); // Mean for each cell 144 psVector *meanMask = psVectorAlloc(numCells, PS_TYPE_VECTOR_MASK); // Mask for means 145 psVectorInit(mean, NAN); 146 psVectorInit(meanMask, 0); 147 148 // Mask bits 149 enum { 150 PM_PATTERN_IGNORE = 0x01, // Ignore this cell 151 PM_PATTERN_TWEAK = 0x02, // Tweak this cell 152 PM_PATTERN_ERROR = 0x04, // Error in calculating background 153 PM_PATTERN_ALL = 0xFF, // All causes 154 }; 155 156 // Count number of cells to tweak 157 int numTweak = 0; // Number of cells to tweak 158 int numIgnore = 0; // Number of cells to ignore 159 for (int i = 0; i < numCells; i++) { 160 pmCell *cell = chip->cells->data[i]; // Cell of interest 161 if (!cell || !cell->data_exists || !cell->process || 162 cell->readouts->n == 0 || cell->readouts->n > 1 || !cell->readouts->data[0]) { 163 numIgnore++; 164 meanMask->data.PS_TYPE_VECTOR_MASK_DATA[i] = PM_PATTERN_IGNORE; 165 continue; 166 } 167 if (tweak->data.U8[i]) { 168 meanMask->data.PS_TYPE_VECTOR_MASK_DATA[i] = PM_PATTERN_TWEAK; 169 numTweak++; 170 } 171 } 172 if (numTweak == 0) { 173 // Nothing to do 174 psFree(mean); 175 psFree(meanMask); 176 return true; 177 } 178 if (numTweak >= numCells - numIgnore) { 179 psError(PS_ERR_BAD_PARAMETER_VALUE, true, "Cannot pattern-correct all cells within a chip."); 180 psFree(mean); 181 psFree(meanMask); 182 return false; 183 } 184 185 // Measure mean of each cell 186 // This is not really the perfect thing to do, which would be to take a common mean for the set of cells 187 // which aren't being tweaked (because some cells will be heavily masked, so shouldn't be weighted the 188 // same as pure cells), but it's simple and fast. 189 psStats *bgStats = psStatsAlloc(bgStat); // Statistics on background 190 psRandom *rng = psRandomAlloc(PS_RANDOM_TAUS); // Random number generator 191 for (int i = 0; i < numCells; i++) { 192 if (meanMask->data.PS_TYPE_VECTOR_MASK_DATA[i] & PM_PATTERN_IGNORE) { 193 continue; 194 } 195 pmCell *cell = chip->cells->data[i]; // Cell of interest 196 pmReadout *ro = cell->readouts->data[0]; // Readout of interest 197 198 psStatsInit(bgStats); 199 #if 1 200 if (!psImageBackground(bgStats, NULL, ro->image, ro->mask, maskVal, rng)) { 201 psWarning("Unable to measure background for cell %d\n", i); 202 psErrorClear(); 203 meanMask->data.PS_TYPE_VECTOR_MASK_DATA[i] |= PM_PATTERN_ERROR; 204 continue; 205 } 206 #else 207 if (!psImageStats(bgStats, ro->image, ro->mask, maskVal)) { 208 psWarning("Unable to measure background for cell %d\n", i); 209 psErrorClear(); 210 meanMask->data.PS_TYPE_VECTOR_MASK_DATA[i] |= PM_PATTERN_ERROR; 211 continue; 212 } 213 #endif 214 mean->data.F32[i] = psStatsGetValue(bgStats, bgStat); 215 if (!isfinite(mean->data.F32[i])) { 216 psWarning("Non-finite background for cell %d\n", i); 217 psErrorClear(); 218 meanMask->data.PS_TYPE_VECTOR_MASK_DATA[i] |= PM_PATTERN_ERROR; 219 continue; 220 } 221 } 222 psFree(bgStats); 223 psFree(rng); 224 225 psStats *cellStats = psStatsAlloc(cellStat); // Statistics on cells 226 if (!psVectorStats(cellStats, mean, NULL, meanMask, PM_PATTERN_ALL)) { 227 psError(PS_ERR_UNKNOWN, false, "Unable to calculate mean cell background."); 228 psFree(mean); 229 psFree(meanMask); 230 psFree(cellStats); 231 return false; 232 } 233 234 float background = psStatsGetValue(cellStats, cellStat); // Background value for chip 235 psFree(cellStats); 236 if (!isfinite(background)) { 237 psError(PS_ERR_UNKNOWN, false, "Non-finite mean cell background."); 238 psFree(mean); 239 psFree(meanMask); 240 return false; 241 } 242 243 psLogMsg("psModules.detrend", PS_LOG_DETAIL, "Mean chip background is %f", background); 244 245 for (int i = 0; i < numCells; i++) { 246 if (meanMask->data.PS_TYPE_VECTOR_MASK_DATA[i] & PM_PATTERN_IGNORE) { 247 continue; 248 } 249 if (!(meanMask->data.PS_TYPE_VECTOR_MASK_DATA[i] & PM_PATTERN_TWEAK)) { 250 continue; 251 } 252 pmCell *cell = chip->cells->data[i]; // Cell of interest 253 pmReadout *ro = cell->readouts->data[0]; // Readout of interest 254 if (meanMask->data.PS_TYPE_VECTOR_MASK_DATA[i] & PM_PATTERN_ERROR) { 255 psImageInit(ro->image, NAN); 256 psBinaryOp(ro->mask, ro->mask, "|", psScalarAlloc(maskBad, PS_TYPE_IMAGE_MASK)); 257 continue; 258 } 259 float correction = background - mean->data.F32[i]; // Correction to apply 260 psLogMsg("psModules.detrend", PS_LOG_DETAIL, "Correcting background of cell %d by %f", i, correction); 261 psBinaryOp(ro->image, ro->image, "+", psScalarAlloc(correction, PS_TYPE_F32)); 262 } 263 264 psFree(mean); 265 psFree(meanMask); 266 267 return true; 268 } -
branches/eam_branches/20091201/psModules/src/detrend/pmPattern.h
r24903 r26776 31 31 ); 32 32 33 /// Fix the background on cells known to be troublesome 34 bool pmPatternCell( 35 pmChip *chip, ///< Chip to correct 36 const psVector *tweak, ///< U8 vector indicating whether to tweak the corresponding cell 37 psStatsOptions bgStat, ///< Statistic to use for background measurement 38 psStatsOptions cellStat, ///< Statistic to use for combination of cell background measurements 39 psImageMaskType maskVal, ///< Mask value to use 40 psImageMaskType maskBad ///< Mask value to give bad pixels 41 ); 42 43 33 44 /// @} 34 45 #endif
Note:
See TracChangeset
for help on using the changeset viewer.
