4

次のことを行うコードがあります。入力地震キューブを与え、半分のサイズでトリミングされたバージョンを作成し、このトリミングされたキューブを実現します。

プラグインは問題なく動作するようです。しかし、Petrel を使用して実現されたキューブを削除しようとすると (実現されたキューブを右クリックして [削除] を選択)、キューブは Petrel 入力ツリーに残ります。

設定ダイアログを開くこともできますが、どのウィンドウにも表示できず、コンテキスト メニューにアクセスできません。それに加えて、その下のインライン、Xline、またはタイムスライスの値は、座標値のように見えるものに変更されます。

これはバグですか、それとも何か間違っていますか?

これが私のコードです(キューブは入力地震キューブです):

        Index3 start = new Index3(0, 0, 0);
        Index3 end = new Index3(cube.NumSamplesIJK / 2);

        SeismicCube croppedCube;
        using (var t = DataManager.NewTransaction())
        {
            t.Lock(cube);
            VolumeCroppingInfo croppingInfo = new VolumeCroppingInfo(start, end, new Index2(0, 0));
            croppedCube = SeismicSystem.SeismicCroppingService.CreateVirtualCroppedVolume(
                cube, croppingInfo);
            t.Commit();
        }

        var realizeWorkstep =
            PetrelSystem.WorkflowEditor.RegisteredWorksteps.Processes.GetGeophysicsGroup().RealizeSeismic;
        RealizeSeismicArguments realizeArgPack =
            (RealizeSeismicArguments)realizeWorkstep.CreateArgumentPackage(DataManager.DataSourceManager);

        realizeArgPack.RealizationQuality = RealizationBitNumber.Bit32;
        realizeArgPack.Seismic = croppedCube;
        realizeArgPack.UseExactSourceValue = true;

       realizeWorkstep.InvokeSimple(realizeArgPack);
4

1 に答える 1

3

プロジェクトを保存して Petrel で削除を実行すると、トリミングされたリアライズド キューブが削除されます。プロジェクトを保存する前に、プロジェクトは削除されません。コードを使用してプラグインを作成することにより、文書化された動作を複製しました。

バグかどうかはわかりませんが、機能の可能性があると思われます。確かにあなたのコードは問題ではありません。

おそらく、Petrel に詳しい人なら、Petrel がここで使用しているロジックについてコメントするでしょう。

于 2012-11-29T14:44:57.157 に答える