예제 #1
0
    def sampleDictionaries(self, cases, work, wind_dict):
        # TODO - at the moment for 90 degrees phi only and in line instead of in a function
        for case in cases:
            self._r.status('preparing Sample file for case '+case.name)
            sampleFile = ParsedParameterFile(path.join(case.systemDir(), "sampleDict"))
            del sampleFile.content['sets'][:]
            if len(wind_dict["Measurements"]) > 0:
                self._r.status("creating sample locations for measurements")
                for metMast in wind_dict["Measurements"]:
                    self._r.status("adding met mast " + metMast)
                    # creating sub directory entry
                    sampleFile.content['sets'].append(metMast)
                    # creating another fictional sub directory entry - so that i can run it over in a second
                    sampleFile.content['sets'].append([metMast])
                    sampleFile['sets'][len(sampleFile['sets'])-1] = \
                    {'type':'uniform', 'axis':'z',\
                    'start':'('+str(wind_dict["Measurements"][metMast]["x"])+" "\
                               +str(wind_dict["Measurements"][metMast]["y"])+" "\
                               +str(wind_dict["Measurements"][metMast]["gl"])+")",\
                    'end':  '('+str(wind_dict["Measurements"][metMast]["x"])+" "\
                               +str(wind_dict["Measurements"][metMast]["y"])+" "\
                               +str(wind_dict["Measurements"][metMast]["gl"]+\
                                    wind_dict["Measurements"][metMast]["h"])+")",\
                    'nPoints':wind_dict['sampleParams']['nPoints']}
            if len(wind_dict['sampleParams']['metMasts'])>0:
               self._r.status("creating sample locations for sampleParams")
               for metMast in wind_dict['sampleParams']['metMasts']:
                    # creating sub directory entry
                    sampleFile.content['sets'].append(metMast)
                    # creating another fictional sub directory entry - so that i can run it over in a second
                    sampleFile.content['sets'].append([metMast])
                    sampleFile['sets'][len(sampleFile['sets'])-1] = \
                    {'type':'uniform', 'axis':'z',\
                    'start':'('+str(wind_dict["sampleParams"]["metMasts"][metMast]["x"])+" "\
                               +str(wind_dict["sampleParams"]["metMasts"][metMast]["y"])+" "\
                               +str(wind_dict["sampleParams"]["metMasts"][metMast]["gl"])+")",\
                    'end':  '('+str(wind_dict["sampleParams"]["metMasts"][metMast]["x"])+" "\
                               +str(wind_dict["sampleParams"]["metMasts"][metMast]["y"])+" "\
                               +str(wind_dict["sampleParams"]["metMasts"][metMast]["gl"]+\
                                    wind_dict["sampleParams"]["metMasts"][metMast]["h"])+")",\
                    'nPoints':wind_dict['sampleParams']['nPoints']}

            del sampleFile.content['surfaces'][:]
            for i,h in enumerate(wind_dict['sampleParams']['hSample']):
                self._r.status('preparing sampling surface at '+str(h)+' meters agl')
                translateSTL.stl_shift_z_filenames(path.join(case.name,'constant/triSurface/terrain.stl'), path.join(case.name,'constant/triSurface/terrain_agl_'+str(h)+'.stl'), h)
                # creating sub directory entry
                sampleFile.content['surfaces'].append('agl_'+str(h))
                # creating another fictional sub directory entry - so that i can run it over in a second
                sampleFile.content['surfaces'].append(['agl_'+str(h)])
                sampleFile['surfaces'][len(sampleFile['surfaces'])-1]={'type':'sampledTriSurfaceMesh','surface':'terrain_agl_'+str(h)+'.stl','source':'cells'}
            sampleFile.writeFile()
            self._r.status('Sampling case '+case.name)
            Runner(args=["sample" ,"-latestTime", "-case" ,case.name])