#4603 Python: add case Id to exportSnapshots (#4604)

* #4603 Python: add case Id to exportSnapshots
* Fixup after review
This commit is contained in:
Gaute Lindkvist 2019-08-21 15:11:29 +02:00 committed by GitHub
parent a97066b2f2
commit 7bfe4f4bfe
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 16 additions and 8 deletions

View File

@ -51,6 +51,7 @@ RicfExportSnapshots::RicfExportSnapshots()
{ {
RICF_InitField(&m_type, "type", RicfExportSnapshots::SnapshotsTypeEnum(), "Type", "", "", ""); RICF_InitField(&m_type, "type", RicfExportSnapshots::SnapshotsTypeEnum(), "Type", "", "", "");
RICF_InitField(&m_prefix, "prefix", QString(), "Prefix", "", "", ""); RICF_InitField(&m_prefix, "prefix", QString(), "Prefix", "", "", "");
RICF_InitField(&m_caseId, "caseId", -1, "Case Id", "", "", "");
} }
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
@ -77,7 +78,7 @@ RicfCommandResponse RicfExportSnapshots::execute()
} }
if (m_type == RicfExportSnapshots::VIEWS || m_type == RicfExportSnapshots::ALL) if (m_type == RicfExportSnapshots::VIEWS || m_type == RicfExportSnapshots::ALL)
{ {
RicSnapshotAllViewsToFileFeature::exportSnapshotOfAllViewsIntoFolder(absolutePathToSnapshotDir, m_prefix); RicSnapshotAllViewsToFileFeature::exportSnapshotOfAllViewsIntoFolder(absolutePathToSnapshotDir, m_prefix, m_caseId());
} }
if (m_type == RicfExportSnapshots::PLOTS || m_type == RicfExportSnapshots::ALL) if (m_type == RicfExportSnapshots::PLOTS || m_type == RicfExportSnapshots::ALL)
{ {

View File

@ -50,4 +50,5 @@ public:
private: private:
caf::PdmField<SnapshotsTypeEnum> m_type; caf::PdmField<SnapshotsTypeEnum> m_type;
caf::PdmField<QString> m_prefix; caf::PdmField<QString> m_prefix;
caf::PdmField<int> m_caseId;
}; };

View File

@ -68,9 +68,9 @@ void RicSnapshotAllViewsToFileFeature::saveAllViews()
} }
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
/// /// Export all snapshots of a given case (or caseId == -1 for all cases)
//-------------------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------------------------
void RicSnapshotAllViewsToFileFeature::exportSnapshotOfAllViewsIntoFolder(const QString& snapshotFolderName, const QString& prefix) void RicSnapshotAllViewsToFileFeature::exportSnapshotOfAllViewsIntoFolder(const QString& snapshotFolderName, const QString& prefix /*= ""*/, int caseId /*= -1*/)
{ {
RimProject* project = RiaApplication::instance()->project(); RimProject* project = RiaApplication::instance()->project();
@ -94,6 +94,9 @@ void RicSnapshotAllViewsToFileFeature::exportSnapshotOfAllViewsIntoFolder(const
RimCase* cas = projectCases[i]; RimCase* cas = projectCases[i];
if (!cas) continue; if (!cas) continue;
bool matchingCaseId = caseId == -1 || caseId == cas->caseId();
if (!matchingCaseId) continue;
std::vector<Rim3dView*> views = cas->views(); std::vector<Rim3dView*> views = cas->views();
for (size_t j = 0; j < views.size(); j++) for (size_t j = 0; j < views.size(); j++)

View File

@ -32,7 +32,7 @@ class RicSnapshotAllViewsToFileFeature : public caf::CmdFeature
public: public:
static void saveAllViews(); static void saveAllViews();
static void exportSnapshotOfAllViewsIntoFolder(const QString& snapshotFolderName, const QString& prefix = ""); static void exportSnapshotOfAllViewsIntoFolder(const QString& snapshotFolderName, const QString& prefix = "", int caseId = -1);
protected: protected:
// Overrides // Overrides

View File

@ -52,6 +52,7 @@ message ExportSnapshotsRequest
{ {
SnapshotType type = 1; SnapshotType type = 1;
string prefix = 2; string prefix = 2;
int32 caseId = 3;
} }
message ExportPropertyRequest message ExportPropertyRequest

View File

@ -118,16 +118,18 @@ class Commands:
""" """
return self.__execute(exportMultiCaseSnapshot=Cmd.ExportMultiCaseRequest(gridListFile=gridListFile)) return self.__execute(exportMultiCaseSnapshot=Cmd.ExportMultiCaseRequest(gridListFile=gridListFile))
def exportSnapshots(self, type = 'ALL', prefix=''): def exportSnapshots(self, type = 'ALL', prefix='', caseId = -1):
""" Export snapshots of a given type """ Export snapshots of a given type
Arguments: Arguments:
type (str): Enum string ('ALL', 'VIEWS' or 'PLOTS') type (str): Enum string ('ALL', 'VIEWS' or 'PLOTS')
prefix (str): Exported file name prefix prefix (str): Exported file name prefix
caseId (int): the case Id to export for. The default of -1 will export all cases
""" """
return self.__execute(exportSnapshots=Cmd.ExportSnapshotsRequest(type=type, return self.__execute(exportSnapshots=Cmd.ExportSnapshotsRequest(type=type,
prefix=prefix)) prefix=prefix,
caseId=caseId))
def exportProperty(self, caseId, timeStep, property, eclipseKeyword=property, undefinedValue=0.0, exportFile=property): def exportProperty(self, caseId, timeStep, property, eclipseKeyword=property, undefinedValue=0.0, exportFile=property):
""" Export an Eclipse property """ Export an Eclipse property

View File

@ -35,9 +35,9 @@ for case in cases:
print(case.name, case.id, 'Number of timesteps: ' + str(len(timeSteps))) print(case.name, case.id, 'Number of timesteps: ' + str(len(timeSteps)))
print('Number of timesteps for snapshoting: ' + str(len(tss_snapshot))) print('Number of timesteps for snapshoting: ' + str(len(tss_snapshot)))
view = case.view(id = 0) view = case.views()[0]
for property in property_list: for property in property_list:
view.applyCellResult(resultType='DYNAMIC_NATIVE', resultVariable=property) view.applyCellResult(resultType='DYNAMIC_NATIVE', resultVariable=property)
for ts_snapshot in tss_snapshot: for ts_snapshot in tss_snapshot:
resInsight.commands.setTimeStep(caseId = case.id, timeStep = ts_snapshot) resInsight.commands.setTimeStep(caseId = case.id, timeStep = ts_snapshot)
resInsight.commands.exportSnapshots('VIEWS') # ALL, VIEWS or PLOTS default is 'ALL' resInsight.commands.exportSnapshots(type='VIEWS', caseId=case.id) # ALL, VIEWS or PLOTS default is 'ALL'