Changeset 297 for 1dwg


Ignore:
Timestamp:
Mar 17, 2013 1:28:36 AM (7 years ago)
Author:
prjemian
Message:

IgorPro? support update to v1.1 work-in-progress

Location:
1dwg/branches/v1.1/IgorPro
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • 1dwg/branches/v1.1/IgorPro/cansasXML.ipf

    r77 r297  
    1010// purpose:  implement an IgorPro file reader to read the canSAS 1-D reduced SAS data in XML files 
    1111//                      adheres to the cansas1d/1.0 standard 
    12 // readme:    http://www.smallangles.net/wgwiki/index.php/cansas1d_binding_IgorPro 
    13 // URL: http://www.smallangles.net/wgwiki/index.php/cansas1d_documentation 
     12// readme:    http://www.cansas.org/formats/canSAS1d/1.1/doc/binding-igorpro.html 
     13// URL: http://www.cansas.org/formats/canSAS1d/1.1/doc/ 
    1414// 
    1515// requires:    IgorPro (http://www.wavemetrics.com/) 
     
    3939        //              -1: XML file not found 
    4040        //              -2: root element is not <SASroot> with valid canSAS namespace 
    41         //              -3: <SASroot> version  is not 1.0 
     41        //              -3: <SASroot> version  is not 1.0 or 1.1 
    4242        //              -4: no <SASentry> elements 
    4343        //              -5: XMLutils XOP needs upgrade 
     
    111111        STRSWITCH(ns)    
    112112        CASE "cansas1d/1.0":                                                    // version 1.0 of the canSAS 1-D reduced SAS data standard 
    113                 PRINT fileName, "\t\t identified as: cansas1d/1.0 XML file" 
     113        CASE "urn:cansas1d:1.1":                                                // version 1.1 of the canSAS 1-D reduced SAS data standard 
     114                PRINT fileName, "\t\t identified as: " + ns + " XML file" 
    114115                returnCode = CS_1i_parseXml(fileID)                     //  This is where the action happens! 
    115116                IF (returnCode != 0) 
     
    150151        STRING ns = "", thisLocation 
    151152        VARIABLE i, item 
    152         MAKE/T/N=(1)/O nsList           // list of all possible namespaces 
     153        MAKE/T/N=(2)/O nsList           // list of all possible namespaces 
    153154        nsList[0] = "cansas1d/1.0"              // first version of canSAS 1-D reduced SAS 
     155        nsList[1] = "urn:cansas1d:1.1"  // second version of canSAS 1-D reduced SAS 
    154156 
    155157        FOR (item = 0; item < DimSize(nsList, 0); item += 1)            // loop over all possible namespaces 
     
    232234                        ENDFOR 
    233235                ENDIF 
     236 
     237                // TODO: process any transmission spectra 
     238                STRING/G ns = CS_getDefaultNamespace(fileID) 
     239                IF (cmpstr(ns,  "urn:cansas1d:1.1") == 0) 
     240                        XmlListXpath(fileID, SASentryPath + "//cs:SAStransmission_spectrum", nsStr) 
     241                        WAVE/T  M_listXPath 
     242                        print "Searching for SAStransmission_spectrum groups" 
     243                        print DimSize(M_listXPath, 0) , M_listXPath 
     244                        // ... 
     245                ENDIF 
     246                 
    234247                KillWaves/Z M_listXPath 
    235248        ENDFOR 
     
    710723        fList = AddListItem("elmo.xml",                                 fList, ";", Inf)                // non-existent file 
    711724        fList = AddListItem("cansasXML.ipf",                    fList, ";", Inf)                // this file (should fail on XML parsing) 
    712         fList = AddListItem("book.xml",                                 fList, ";", Inf)                // good XML example file but not canSAS, not even close 
    713         fList = AddListItem("bimodal-test1.xml",                fList, ";", Inf)                // simple dataset 
    714         fList = AddListItem("bimodal-test2-vector.xml", fList, ";", Inf)                // version 2.0 file (no standard yet) 
    715         fList = AddListItem("test.xml",                                 fList, ";", Inf)                // cs_collagen.xml with no namespace 
    716         fList = AddListItem("test2.xml",                                fList, ";", Inf)                // version 2.0 file (no standard yet) 
    717         fList = AddListItem("ISIS_SANS_Example.xml",    fList, ";", Inf)                // from S. King, 2008-03-17 
    718         fList = AddListItem("W1W2.xml",                                 fList, ";", Inf)                // from S. King, 2008-03-17 
    719         fList = AddListItem("ill_sasxml_example.xml",   fList, ";", Inf)                // from canSAS 2007 meeting, reformatted 
    720         fList = AddListItem("isis_sasxml_example.xml",  fList, ";", Inf)                // from canSAS 2007 meeting, reformatted 
    721         fList = AddListItem("r586.xml",                                         fList, ";", Inf)                // from canSAS 2007 meeting, reformatted 
    722         fList = AddListItem("r597.xml",                                         fList, ";", Inf)                // from canSAS 2007 meeting, reformatted 
    723         fList = AddListItem("xg009036_001.xml",                 fList, ";", Inf)                // foreign elements with other namespaces 
    724         fList = AddListItem("cs_collagen.xml",                  fList, ";", Inf)                // another simple dataset, bare minimum info 
    725         fList = AddListItem("cs_collagen_full.xml",             fList, ";", Inf)                // more Q range than previous 
    726         fList = AddListItem("cs_af1410.xml",                    fList, ";", Inf)                // multiple SASentry and SASdata elements 
    727         fList = AddListItem("cansas1d-template.xml",    fList, ";", Inf)                // multiple SASentry and SASdata elements 
    728         fList = AddListItem("1998spheres.xml",                  fList, ";", Inf)                // 2 SASentry, few thousand data points each 
    729         fList = AddListItem("does-not-exist-file.xml",          fList, ";", Inf)                // non-existent file 
    730         fList = AddListItem("cs_rr_polymers.xml",               fList, ";", Inf)                // Round Robin polymer samples from John Barnes @ NIST 
    731         fList = AddListItem("s81-polyurea.xml",                         fList, ";", Inf)                // polyurea from APS/USAXS/Indra (with extra metadata) 
     725        fList = AddListItem("../examples/book.xml",                             fList, ";", Inf)                // good XML example file but not canSAS, not even close 
     726        fList = AddListItem("../examples/bimodal-test1.xml",            fList, ";", Inf)                // simple dataset 
     727        fList = AddListItem("../examples/testers/test3.xml",                                    fList, ";", Inf)                // no number provided for wavelength, others, too 
     728        fList = AddListItem("../examples/ISIS_SANS_Example.xml",        fList, ";", Inf)                // from S. King, 2008-03-17 
     729        fList = AddListItem("../examples/W1W2.xml",                             fList, ";", Inf)                // from S. King, 2008-03-17 
     730        fList = AddListItem("../examples/ill_sasxml_example.xml",       fList, ";", Inf)                // from canSAS 2007 meeting, reformatted 
     731        fList = AddListItem("../examples/isis_sasxml_example.xml",      fList, ";", Inf)                // from canSAS 2007 meeting, reformatted 
     732        fList = AddListItem("../examples/r586.xml",                                     fList, ";", Inf)                // from canSAS 2007 meeting, reformatted 
     733        fList = AddListItem("../examples/r597.xml",                                     fList, ";", Inf)                // from canSAS 2007 meeting, reformatted 
     734        fList = AddListItem("../examples/xg009036_001.xml",             fList, ";", Inf)                // foreign elements with other namespaces 
     735        fList = AddListItem("../examples/cs_collagen.xml",                      fList, ";", Inf)                // another simple dataset, bare minimum info 
     736        fList = AddListItem("../examples/cs_collagen_full.xml",                 fList, ";", Inf)                // more Q range than previous 
     737        fList = AddListItem("../examples/cs_af1410.xml",                        fList, ";", Inf)                // multiple SASentry and SASdata elements 
     738        fList = AddListItem("../examples/cs_rr_polymers.xml",           fList, ";", Inf)                // Round Robin polymer samples from John Barnes @ NIST 
     739        fList = AddListItem("../examples/cansas1d-template.xml",        fList, ";", Inf)                // multiple SASentry and SASdata elements 
     740        fList = AddListItem("../examples/1998spheres.xml",                      fList, ";", Inf)                // 2 SASentry, few thousand data points each 
     741        fList = AddListItem("../examples/does-not-exist-file.xml",              fList, ";", Inf)                // non-existent file 
     742        fList = AddListItem("../examples/s81-polyurea.xml",                     fList, ";", Inf)                // polyurea from APS/USAXS/Indra (with extra metadata) 
     743        fList = AddListItem("../examples/GLASSYC_C4G8G9_w_TL.xml",                      fList, ";", Inf)                // from S. King, with transmission spectra 
    732744         
    733745        // try to load each data set in the table 
Note: See TracChangeset for help on using the changeset viewer.