Ignore:
Timestamp:
Sep 18, 2017 12:08:50 PM (5 years ago)
Author:
srkline
Message:

many minor changes after real VSANS data collected.

additional procedures added to allow easy correction of the incorrect header information from NICE.

Most notable addition is the pinhole resolution added to the calculation and the I(q) output. White beam is also treated (incorrectly) as a gaussian distrivution, but the results of smeared fitting look to be quite good.

Trimming and sorting routines are now (pinhole) resolution aware.

File identification routines have been updated to use the proper definitions of "purpose" and "intent". Both fields are now in the catalog, to allow for better sorting.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • sans/Dev/trunk/NCNR_User_Procedures/Reduction/VSANS/V_Utilities_General.ipf

    r1056 r1064  
    12211221 
    12221222 
     1223 
     1224////// methods for filtering out different lists of files. 
     1225 
     1226// testStr is the "intent" string, or grep string 
     1227// method is the method to use to find the file 
     1228// 0 = (default) is to use the file catalog (= fastest) 
     1229// 1 = Grep (not terribly slow) 
     1230// 2 = read every file (bad choice) 
     1231// 
     1232Function/S V_getFileIntentList(testStr,method) 
     1233        String testStr 
     1234        Variable method 
     1235         
     1236        Variable ii,num 
     1237        String list="",item="",fname,newList,intent 
     1238 
     1239        // read every file... 
     1240        if(method == 2) 
     1241                PathInfo catPathName 
     1242                String path = S_path 
     1243                newList = V_GetRawDataFileList() 
     1244                num=ItemsInList(newList) 
     1245                 
     1246                for(ii=0;ii<num;ii+=1) 
     1247                        item=StringFromList(ii, newList , ";") 
     1248                        fname = path + item 
     1249                        intent = V_getReduction_intent(fname) 
     1250                        if(cmpstr(intent,testStr) == 0) 
     1251                                list += item + ";" 
     1252                        endif 
     1253                endfor   
     1254        endif 
     1255         
     1256        // use Grep 
     1257        if(method == 1) 
     1258                newList = V_GetRawDataFileList() 
     1259                num=ItemsInList(newList) 
     1260                for(ii=0;ii<num;ii+=1) 
     1261                        item=StringFromList(ii, newList , ";") 
     1262                        Grep/P=catPathName/Q/E=("(?i)"+testStr) item 
     1263                        if( V_value )   // at least one instance was found 
     1264        //                              Print "found ", item,ii 
     1265                                list += item + ";" 
     1266                        endif 
     1267                endfor   
     1268         
     1269        else 
     1270        // get the list from the file catalog 
     1271         
     1272                WAVE/T fileNameW = root:Packages:NIST:VSANS:CatVSHeaderInfo:Filenames 
     1273                WAVE/T intentW = root:Packages:NIST:VSANS:CatVSHeaderInfo:Intent 
     1274                 
     1275                Variable np = numpnts(intentW)          //fileNameW is LONGER - so don't use numpnts(fileWave) 
     1276                for(ii=0;ii<np;ii+=1) 
     1277                        if(cmpstr(intentW[ii],testStr)==0)              //this is case-INSENSITIVE (necessary, since the case is unknown) 
     1278                                list += fileNameW[ii] + ";" 
     1279                        endif            
     1280                endfor 
     1281                 
     1282                List = SortList(List,";",0) 
     1283        endif 
     1284         
     1285        return(list) 
     1286end 
     1287 
     1288 
     1289// testStr is the "purpose" string, or grep string 
     1290// method is the method to use to find the file 
     1291// 0 = (default) is to use the file catalog (= fastest) 
     1292// 1 = Grep (not terribly slow) 
     1293// 2 = read every file (bad choice) 
     1294// 
     1295Function/S V_getFilePurposeList(testStr,method) 
     1296        String testStr 
     1297        Variable method 
     1298         
     1299        Variable ii,num 
     1300        String list="",item="",fname,newList,purpose 
     1301 
     1302        // read every file... 
     1303        if(method == 2) 
     1304                PathInfo catPathName 
     1305                String path = S_path 
     1306                newList = V_GetRawDataFileList() 
     1307                num=ItemsInList(newList) 
     1308                 
     1309                for(ii=0;ii<num;ii+=1) 
     1310                        item=StringFromList(ii, newList , ";") 
     1311                        fname = path + item 
     1312                        purpose = V_getReduction_purpose(fname) 
     1313                        if(cmpstr(purpose,testStr) == 0) 
     1314                                list += item + ";" 
     1315                        endif 
     1316                endfor   
     1317        endif 
     1318         
     1319        // use Grep 
     1320        if(method == 1) 
     1321                newList = V_GetRawDataFileList() 
     1322                num=ItemsInList(newList) 
     1323                for(ii=0;ii<num;ii+=1) 
     1324                        item=StringFromList(ii, newList , ";") 
     1325                        Grep/P=catPathName/Q/E=("(?i)"+testStr) item 
     1326                        if( V_value )   // at least one instance was found 
     1327        //                              Print "found ", item,ii 
     1328                                list += item + ";" 
     1329                        endif 
     1330                endfor   
     1331         
     1332        else 
     1333        // get the list from the file catalog 
     1334         
     1335                WAVE/T fileNameW = root:Packages:NIST:VSANS:CatVSHeaderInfo:Filenames 
     1336                WAVE/T purposeW = root:Packages:NIST:VSANS:CatVSHeaderInfo:Purpose 
     1337                 
     1338                Variable np = numpnts(purposeW)         //fileNameW is LONGER - so don't use numpnts(fileWave) 
     1339                for(ii=0;ii<np;ii+=1) 
     1340                        if(cmpstr(purposeW[ii],testStr)==0)             //this is case-INSENSITIVE (necessary, since the case is unknown) 
     1341                                list += fileNameW[ii] + ";" 
     1342                        endif            
     1343                endfor 
     1344                 
     1345                List = SortList(List,";",0) 
     1346        endif 
     1347         
     1348        return(list) 
     1349end 
     1350 
     1351 
     1352// match BOTH the intent and purpose 
     1353// -- needed to identify the SAMPLE + SCATTERING data files. 
     1354// 
     1355// 
     1356// method is the method to use to find the file (currently ignored, CAT is always used) 
     1357// 0 = (default) is to use the file catalog (= fastest) 
     1358// 1 = Grep (not terribly slow) 
     1359// 2 = read every file (bad choice) 
     1360// 
     1361Function/S V_getFileIntentPurposeList(intent,purpose,method) 
     1362        String intent,purpose 
     1363        Variable method 
     1364         
     1365        Variable ii,num 
     1366        String list="",item="",fname,newList 
     1367 
     1368//      // read every file... 
     1369//      if(method == 2) 
     1370//              PathInfo catPathName 
     1371//              String path = S_path 
     1372//              newList = V_GetRawDataFileList() 
     1373//              num=ItemsInList(newList) 
     1374//               
     1375//              for(ii=0;ii<num;ii+=1) 
     1376//                      item=StringFromList(ii, newList , ";") 
     1377//                      fname = path + item 
     1378//                      purpose = V_getReduction_purpose(fname) 
     1379//                      if(cmpstr(purpose,testStr) == 0) 
     1380//                              list += item + ";" 
     1381//                      endif 
     1382//              endfor   
     1383//      endif 
     1384//       
     1385//      // use Grep 
     1386//      if(method == 1) 
     1387//              newList = V_GetRawDataFileList() 
     1388//              num=ItemsInList(newList) 
     1389//              for(ii=0;ii<num;ii+=1) 
     1390//                      item=StringFromList(ii, newList , ";") 
     1391//                      Grep/P=catPathName/Q/E=("(?i)"+testStr) item 
     1392//                      if( V_value )   // at least one instance was found 
     1393//      //                              Print "found ", item,ii 
     1394//                              list += item + ";" 
     1395//                      endif 
     1396//              endfor   
     1397//       
     1398//      else 
     1399        // get the list from the file catalog 
     1400         
     1401                WAVE/T fileNameW = root:Packages:NIST:VSANS:CatVSHeaderInfo:Filenames 
     1402                WAVE/T purposeW = root:Packages:NIST:VSANS:CatVSHeaderInfo:Purpose 
     1403                WAVE/T intentW = root:Packages:NIST:VSANS:CatVSHeaderInfo:Intent 
     1404                 
     1405                Variable np = numpnts(purposeW)         //fileNameW is LONGER - so don't use numpnts(fileWave) 
     1406                for(ii=0;ii<np;ii+=1) 
     1407                        if(cmpstr(purposeW[ii],purpose)==0 && cmpstr(intentW[ii],intent)==0)            //this is case-INSENSITIVE (necessary, since the case is unknown) 
     1408                                list += fileNameW[ii] + ";" 
     1409                        endif            
     1410                endfor 
     1411                 
     1412                List = SortList(List,";",0) 
     1413         
     1414        return(list) 
     1415end 
     1416 
     1417 
     1418 
Note: See TracChangeset for help on using the changeset viewer.