- Timestamp:
- Jul 18, 2019 10:11:37 AM (4 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
sans/Dev/branches/nxcansas_writer/NCNR_User_Procedures/Reduction/VSANS/V_Write_VSANS_NXcanSAS.ipf
r1182 r1183 13 13 String/G base = "root:V_NXcanSAS_file" 14 14 15 NewDataFolder/O/S $(base) 16 15 17 SetDataFolder $(pathStr+folderStr) 16 17 Print "Starting the process of writing to NXcanSAS files"18 18 19 19 // Check fullpath and dialog … … 25 25 if(!fileID) 26 26 abort "Unable to create file at " + saveName + "." 27 else28 Variable sasentry = NumVarOrDefault("root:Packages:NIST:gSASEntryNumber", 1)29 sPrintf parentBase,"%s:sasentry%d",base,sasentry // Igor memory base path for all30 sPrintf nxcansasBase,"/sasentry%d/",sasentry // HDF5 base path for all31 32 Wave qw = tmp_q33 Wave iw = tmp_i34 Wave sw = tmp_s35 Wave sigQ = tmp_sq36 Wave qbar = tmp_qb37 Wave fs = tmp_fs38 27 EndIf 28 29 Variable sasentry = NumVarOrDefault("root:Packages:NIST:gSASEntryNumber", 1) 30 sPrintf parentBase,"%s:sasentry%d",base,sasentry // Igor memory base path for all 31 sPrintf nxcansasBase,"/sasentry%d/",sasentry // HDF5 base path for all 32 33 Wave qw = tmp_q 34 Wave iw = tmp_i 35 Wave sw = tmp_s 36 Wave sigQ = tmp_sq 37 Wave qbar = tmp_qb 38 Wave fs = tmp_fs 39 39 40 40 SVAR gProtoStr = root:Packages:NIST:VSANS:Globals:Protocols:gProtoStr … … 69 69 // Run Name and title 70 70 NewDataFolder/O/S $(parentBase) 71 72 71 Make/O/T/N=1 $(parentBase + ":title") = {V_getTitle(folderStr)} 73 72 CreateStrNxCansas(fileID,nxcansasBase,"","title",$(parentBase + ":title"),empty,empty) 74 73 Make/O/T/N=1 $(parentBase + ":run") = {V_getExperiment_identifier(folderStr)} 75 74 CreateStrNxCansas(fileID,nxcansasBase,"","run",$(parentBase + ":run"),empty,empty) 76 77 Print "Writing VSANS 1D Data in NXcanSAS format"78 75 79 76 // SASData … … 100 97 CreateVarNxCansas(fileID,dataParent,"sasdata","Qdev",sigQ,units,inv_angstrom) 101 98 CreateVarNxCansas(fileID,dataParent,"sasdata","Qmean",qbar,units,inv_angstrom) 102 103 Print "Writing VSANS Meta Data in NXcanSAS format"104 99 105 100 // Write all VSANS meta data … … 450 445 Make/O/T/N=5 $(apertureBase + ":attrVals") = {"SASaperture","NXaperture"} 451 446 CreateStrNxCansas(fileID,apertureParent,"","",empty,$(apertureBase + ":attr"),$(apertureBase + ":attrVals")) 452 453 447 // Create SASaperture shape entry 454 448 Make/O/T/N=1 $(apertureBase + ":shape") = {V_getSampleAp_shape(folderStr)} … … 532 526 Make/O/N=1 $(detectorBase + ":y_pixel_size") = {V_getDet_y_pixel_size(folderStr,"FB")} 533 527 CreateVarNxCansas(fileID,detectorParent,"","y_pixel_size",$(detectorBase + ":y_pixel_size"),units,mm) 534 528 535 529 // SASdetector - Front Left 536 530 detectorParent = instrParent + "sasdetector3/" … … 562 556 Make/O/N=1 $(detectorBase + ":y_pixel_size") = {V_getDet_y_pixel_size(folderStr,"FL")} 563 557 CreateVarNxCansas(fileID,detectorParent,"","y_pixel_size",$(detectorBase + ":y_pixel_size"),units,mm) 564 558 565 559 // SASdetector - Front Right 566 560 detectorParent = instrParent + "sasdetector4/" … … 592 586 Make/O/N=1 $(detectorBase + ":y_pixel_size") = {V_getDet_y_pixel_size(folderStr,"FR")} 593 587 CreateVarNxCansas(fileID,detectorParent,"","y_pixel_size",$(detectorBase + ":y_pixel_size"),units,mm) 594 588 595 589 // SASdetector - Middle Top 596 590 detectorParent = instrParent + "sasdetector5/" … … 622 616 Make/O/N=1 $(detectorBase + ":y_pixel_size") = {V_getDet_y_pixel_size(folderStr,"MT")} 623 617 CreateVarNxCansas(fileID,detectorParent,"","y_pixel_size",$(detectorBase + ":y_pixel_size"),units,mm) 624 618 625 619 // SASdetector - Middle Bottom 626 620 detectorParent = instrParent + "sasdetector6/" … … 652 646 Make/O/N=1 $(detectorBase + ":y_pixel_size") = {V_getDet_y_pixel_size(folderStr,"MB")} 653 647 CreateVarNxCansas(fileID,detectorParent,"","y_pixel_size",$(detectorBase + ":y_pixel_size"),units,mm) 654 648 655 649 // SASdetector - Middle Left 656 650 detectorParent = instrParent + "sasdetector7/" … … 682 676 Make/O/N=1 $(detectorBase + ":y_pixel_size") = {V_getDet_y_pixel_size(folderStr,"ML")} 683 677 CreateVarNxCansas(fileID,detectorParent,"","y_pixel_size",$(detectorBase + ":y_pixel_size"),units,mm) 684 678 685 679 // SASdetector - Middle Right 686 680 detectorParent = instrParent + "sasdetector8/" … … 712 706 Make/O/N=1 $(detectorBase + ":y_pixel_size") = {V_getDet_y_pixel_size(folderStr,"MR")} 713 707 CreateVarNxCansas(fileID,detectorParent,"","y_pixel_size",$(detectorBase + ":y_pixel_size"),units,mm) 714 715 // SASdetector - Back High Res 716 detectorParent = instrParent + "sasdetector9/" 717 // Create SASdetector entry 718 detectorBase = instrumentBase + ":sasdetector9" 719 NewDataFolder/O/S $(detectorBase) 720 Make/O/T/N=5 $(detectorBase + ":attr") = {"canSAS_class","NX_class"} 721 Make/O/T/N=5 $(detectorBase + ":attrVals") = {"SASdetector","NXdetector"} 722 CreateStrNxCansas(fileID,detectorParent,"","",empty,$(detectorBase + ":attr"),$(detectorBase + ":attrVals")) 723 // Create SASdetector name entry 724 Make/O/T/N=1 $(detectorBase + ":name") = {"HighResolutionBack"} 725 CreateStrNxCansas(fileID,detectorParent,"","name",$(detectorBase + ":name"),empty,empty) 726 // Create SASdetector type entry 727 Make/O/T/N=1 $(detectorBase + ":type") = {"He3 gas cylinder"} 728 CreateStrNxCansas(fileID,detectorParent,"","type",$(detectorBase + ":type"),empty,empty) 729 // Create SASdetector distance entry 730 Make/O/N=1 $(detectorBase + ":SDD") = {V_getDet_ActualDistance(folderStr,"B")} 731 CreateVarNxCansas(fileID,detectorParent,"","SDD",$(detectorBase + ":SDD"),units,cm) 732 // Create SASdetector beam_center_x entry 733 Make/O/N=1 $(detectorBase + ":beam_center_x") = {V_getDet_beam_center_x_mm(folderStr,"B")} 734 CreateVarNxCansas(fileID,detectorParent,"","beam_center_x",$(detectorBase + ":beam_center_x"),units,mm) 735 // Create SASdetector beam_center_y entry 736 Make/O/N=1 $(detectorBase + ":beam_center_y") = {V_getDet_beam_center_y_mm(folderStr,"B")} 737 CreateVarNxCansas(fileID,detectorParent,"","beam_center_y",$(detectorBase + ":beam_center_y"),units,mm) 738 // Create SASdetector x_pixel_size entry 739 Make/O/N=1 $(detectorBase + ":x_pixel_size") = {V_getDet_x_pixel_size(folderStr,"B")} 740 CreateVarNxCansas(fileID,detectorParent,"","x_pixel_size",$(detectorBase + ":x_pixel_size"),units,mm) 741 // Create SASdetector y_pixel_size entry 742 Make/O/N=1 $(detectorBase + ":y_pixel_size") = {V_getDet_y_pixel_size(folderStr,"B")} 743 CreateVarNxCansas(fileID,detectorParent,"","y_pixel_size",$(detectorBase + ":y_pixel_size"),units,mm) 708 709 NVAR ignoreBack = root:Packages:NIST:VSANS:Globals:gIgnoreDetB 710 if(ignoreBack == 0) 711 // SASdetector - Back High Res 712 detectorParent = instrParent + "sasdetector9/" 713 // Create SASdetector entry 714 detectorBase = instrumentBase + ":sasdetector9" 715 NewDataFolder/O/S $(detectorBase) 716 Make/O/T/N=5 $(detectorBase + ":attr") = {"canSAS_class","NX_class"} 717 Make/O/T/N=5 $(detectorBase + ":attrVals") = {"SASdetector","NXdetector"} 718 CreateStrNxCansas(fileID,detectorParent,"","",empty,$(detectorBase + ":attr"),$(detectorBase + ":attrVals")) 719 // Create SASdetector name entry 720 Make/O/T/N=1 $(detectorBase + ":name") = {"HighResolutionBack"} 721 CreateStrNxCansas(fileID,detectorParent,"","name",$(detectorBase + ":name"),empty,empty) 722 // Create SASdetector type entry 723 Make/O/T/N=1 $(detectorBase + ":type") = {"He3 gas cylinder"} 724 CreateStrNxCansas(fileID,detectorParent,"","type",$(detectorBase + ":type"),empty,empty) 725 // Create SASdetector distance entry 726 Make/O/N=1 $(detectorBase + ":SDD") = {V_getDet_ActualDistance(folderStr,"B")} 727 CreateVarNxCansas(fileID,detectorParent,"","SDD",$(detectorBase + ":SDD"),units,cm) 728 // Create SASdetector beam_center_x entry 729 Make/O/N=1 $(detectorBase + ":beam_center_x") = {V_getDet_beam_center_x_mm(folderStr,"B")} 730 CreateVarNxCansas(fileID,detectorParent,"","beam_center_x",$(detectorBase + ":beam_center_x"),units,mm) 731 // Create SASdetector beam_center_y entry 732 Make/O/N=1 $(detectorBase + ":beam_center_y") = {V_getDet_beam_center_y_mm(folderStr,"B")} 733 CreateVarNxCansas(fileID,detectorParent,"","beam_center_y",$(detectorBase + ":beam_center_y"),units,mm) 734 // Create SASdetector x_pixel_size entry 735 Make/O/N=1 $(detectorBase + ":x_pixel_size") = {V_getDet_x_pixel_size(folderStr,"B")} 736 CreateVarNxCansas(fileID,detectorParent,"","x_pixel_size",$(detectorBase + ":x_pixel_size"),units,mm) 737 // Create SASdetector y_pixel_size entry 738 Make/O/N=1 $(detectorBase + ":y_pixel_size") = {V_getDet_y_pixel_size(folderStr,"B")} 739 CreateVarNxCansas(fileID,detectorParent,"","y_pixel_size",$(detectorBase + ":y_pixel_size"),units,mm) 740 EndIf 744 741 745 742 // SASsource … … 760 757 Make/O/N=1 $(sourceBase + ":incident_wavelength_spread") = {V_getWavelength_spread(folderStr)} 761 758 CreateVarNxCansas(fileID,sourceParent,"","incident_wavelength_spread",$(sourceBase + ":incident_wavelength_spread"),units,angstrom) 762 759 763 760 // SASsample 764 761 String sampleParent = parentBase + "sassample/" … … 774 771 // Create SASsample thickness entry 775 772 Make/O/N=1 $(sampleBase + ":thickness") = {V_getSampleThickness(folderStr)} 776 CreateVarNxCansas(fileID,sampleParent,"","thickness",$(sampleBase + ":thickness"),units, cm)773 CreateVarNxCansas(fileID,sampleParent,"","thickness",$(sampleBase + ":thickness"),units,mm) 777 774 // Create SASsample transmission entry 778 775 Make/O/N=1 $(sampleBase + ":transmission") = {V_getSampleTransmission(folderStr)} … … 803 800 sPrintf processNote,"%sEnd Trim Points: %s\r\n",processNote,ProtoStr8 804 801 sPrintf processNote,"%sCOLLIMATION=%s\r\n",processNote,proto[9] 802 // Create SASprocess entry 805 803 String processParent = parentBase + "sasprocess/" 806 // Create SASprocess entry807 804 String processBase = base + ":sasprocess" 808 805 NewDataFolder/O/S $(processBase) … … 814 811 CreateStrNxCansas(fileID,processParent,"","name",$(processBase + ":name"),empty,empty) 815 812 // Create SASprocess note entry 816 Make/O/T/N=1 $(processBase + ":note") = {processNote} 817 CreateStrNxCansas(fileID,processParent,"","note",$(processBase + ":note"),empty,empty) 813 814 // 815 // TODO: Reinstate SASprocess.note when I figure out why it won't save 816 // 817 818 //Make/O/T/N=1 $(processBase + ":note") = {processNote} 819 //CreateStrNxCansas(fileID,processParent,"","note",$(processBase + ":note"),empty,empty) 820 818 821 End 819 822
Note: See TracChangeset
for help on using the changeset viewer.