Changeset 7901


Ignore:
Timestamp:
07/03/11 16:12:26 (8 years ago)
Author:
sdonegan
Message:

Update to bugs involved in handling CEH service records etc

Location:
TI01-discovery-Ingest/trunk/v4.3.0/ingestAutomation-upgrade/OAIBatch
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • TI01-discovery-Ingest/trunk/v4.3.0/ingestAutomation-upgrade/OAIBatch/ExtractISO.py

    r7892 r7901  
    135135                                                         
    136136                #get all the required information from the chosen xpath definition class 
    137                 self.datasetID = self.getElementVal(self.isoModel.datasetID()) 
     137                 
     138                #first - work out what type of resource we are ingesting .. assume dataset               
     139                try:                     
     140                        self.resourceType = self.getElementVal(self.isoModel.resourceType())[0][0]                       
     141                        self.resourceType_text = self.resourceType 
     142                        self.resourceType_tsvector = self.resourceType 
     143                except: 
     144                        self.resourceType = None 
     145                        self.resourceType_text = None 
     146                        self.resourceType_tsvector = None 
     147                 
     148                #if dataset is a dataset type get id from usual place, if service use fileIdentifier.. 
     149                self.datasetID = 'None' 
     150                if self.resourceType == 'dataset' or self.resourceType=='series':                
     151                        self.datasetID = self.getElementVal(self.isoModel.datasetID())   
     152                elif self.resourceType == 'service': 
     153                        logging.info("Ingesting a service metadata record!") 
     154                        self.datasetID = self.getElementVal(self.isoModel.fileIdentifier()) 
    138155                 
    139156                if self.datasetID == 'None': 
     
    169186                                 
    170187                self.datasetName = self.getElementVal(self.isoModel.dataSetName()) 
    171                                  
    172                  
     188                                                 
    173189                self.boundingDates = self.getElementVal(self.isoModel.boundingDates()) 
    174190                 
    175                 self.boundingDatesRange = self.boundingDateRange(self.boundingDates) 
    176                  
    177                  
     191                self.boundingDatesRange = self.boundingDateRange(self.boundingDates)             
    178192                                         
    179193                self.originalFormat = self.getElementVal(self.isoModel.originalFormat()) 
     
    233247                        self.parameters_text = self.parametersOb.getDelimitedStringFromList(self.parametersOb.listVals) 
    234248                        self.parameters_tsvector = self.parameters_text 
    235                                  
     249                                                 
    236250                coords = self.getElementVal(self.isoModel.coordinates()) 
    237251                if coords == 'None':                     
     
    250264                except: 
    251265                        self.publicationDate = None 
    252                          
    253                 try: 
    254                         self.resourceType = self.getElementVal(self.isoModel.resourceType()) 
    255                         self.resourceType_text = self.resourceType 
    256                         self.resourceType_tsvector = self.resourceType 
    257                 except: 
    258                         self.resourceType = None 
    259                         self.resourceType_text = None 
    260                         self.resourceType_tsvector = None 
    261                  
     266                                         
    262267                try: 
    263268                         
     
    11281133        ''' 
    11291134        def returnSimpleElementVal(self,xpath,showValue=False): 
    1130                  
    1131                 #Note using single path namespath appender rather than list version.. (keeps it simpler)         
    1132                 xpathNS = self.appendNameSpace(xpath)            
    1133                  
     1135                                 
     1136                attrib=False 
     1137                 
     1138                #are there any attributes required i.e. xpath uses "@" to get attribute name, elementtree uses the "attrib" method 
     1139                if '@' in xpath: 
     1140                        logging.info("Requires an attribute value...") 
     1141                         
     1142                        attrib = True 
     1143                         
     1144                        #get the attribute name to find(assume its the last term after the "@") 
     1145                        attribVal = xpath.split('@')[1:][0] 
     1146                        attribXpath = xpath.split('@')[0:][0] 
     1147                         
     1148                        #Note using single path namespath appender rather than list version.. (keeps it simpler)         
     1149                        xpathNS = self.appendNameSpace(attribXpath) 
     1150                         
     1151                else: 
     1152                        xpathNS = self.appendNameSpace(xpath) 
     1153                                 
    11341154                resElementVal = [] 
    1135                  
    1136                 try:     
     1155                                 
     1156                try:                     
    11371157                        rootEl = self.root.findall(xpathNS) 
    11381158                         
     
    11471167                                resElementVal.append('None') 
    11481168                        else: 
    1149                                 value = elVal.text 
     1169                                if attrib: 
     1170                                        value = elVal.attrib[attribVal] 
     1171                                else: 
     1172                                        value = elVal.text 
     1173                                         
    11501174                                if (showValue is True) and (value is not None): 
    11511175                                        logging.info("") 
     
    11531177                                        logging.info("") 
    11541178                                         
    1155                                 resElementVal.append(value) 
     1179                                        resElementVal.append(value) 
    11561180                '''      
    11571181                if rootEl[0].text is None:                                       
  • TI01-discovery-Ingest/trunk/v4.3.0/ingestAutomation-upgrade/OAIBatch/Metadata_document_ingester.py

    r7892 r7901  
    99# annoyingly, an import (CSML file, I think) sets the logging config during imports - so set this 
    1010# here to get there first - since you can only set the config once 
    11 logging.basicConfig(level=logging.INFO, 
     11logging.basicConfig(level=logging.ERROR, 
    1212                    format='%(asctime)s %(filename)s:%(lineno)d %(levelname)s %(message)s') 
    1313 
  • TI01-discovery-Ingest/trunk/v4.3.0/ingestAutomation-upgrade/OAIBatch/NERC_DMS_0_7.py

    r7892 r7901  
    1717                logging.info("Initiated ISO data model: NERC DMS 0.7 profile (accessor class date = 01/11/2010 SJD") 
    1818         
    19         ''' 
    20         Method to extract the dataset ID from the xml 
     19         
     20        ''' 
     21        Method to extract the dataset ID from the xml - for service datasets 
     22        ''' 
     23        def fileIdentifier(self): 
     24                                 
     25                fileIdentifier = (self.fileIdentifier.__name__,{1:{'xpath':'gmd:fileIdentifier/gco:CharacterString'}}) 
     26                 
     27                return fileIdentifier 
     28         
     29        ''' 
     30        Method to extract the dataset ID from the xml - for non service type datasets 
    2131        ''' 
    2232        def datasetID(self): 
     
    6373                                                                                                        'elValXpath':'gmd:organisationName/gco:CharacterString', 
    6474                                                                                                        'depValXpath':'gmd:role/gmd:CI_RoleCode', 
     75                                                                                                        'depVal':'pointOfContact'}}, 
     76                                                                                                        {2:{ 
     77                                                                                                        'baseXpath':'gmd:identificationInfo/srv:SV_ServiceIdentification/gmd:pointOfContact/gmd:CI_ResponsibleParty', 
     78                                                                                                        'elValXpath':'gmd:organisationName/gco:CharacterString', 
     79                                                                                                        'depValXpath':'gmd:role/gmd:CI_RoleCode', 
    6580                                                                                                        'depVal':'pointOfContact'}}) 
    6681                 
     
    176191                ''' 
    177192                 
    178                 resource = (self.resourceType.__name__,{1:{'xpath':'gmd:hierarchyLevel/gmd:MD_ScopeCode'}}) 
     193                resource = (self.resourceType.__name__,{1:{'xpath':'gmd:hierarchyLevel/gmd:MD_ScopeCode@codeListValue'}}) 
    179194         
    180195                return resource 
     
    260275                ''' 
    261276                keywords = (self.keywords.__name__,{1:{'xpath':'gmd:identificationInfo/gmd:MD_DataIdentification/gmd:descriptiveKeywords/gmd:MD_Keywords/gmd:keyword/gco:CharacterString'}}, 
    262                                                                                         {2:{'xpath':'gmd:identificationInfo/gmd:MD_DataIdentification/gmd:descriptiveKeywords/gmd:MD_Keywords/gmd:keyword/gmx:Anchor'}} 
     277                                                                                        {2:{'xpath':'gmd:identificationInfo/gmd:MD_DataIdentification/gmd:descriptiveKeywords/gmd:MD_Keywords/gmd:keyword/gmx:Anchor'}}, 
     278                                                                                        {3:{'xpath':'gmd:identificationInfo/srv:SV_ServiceIdentification/gmd:descriptiveKeywords/gmd:MD_Keywords/gmd:keyword/gco:CharacterString'}} 
    263279                                                                                 
    264280                                ) 
Note: See TracChangeset for help on using the changeset viewer.