Клонировать и изменить размер SeismicCube

1

Я совершенно новый в Ocean Framework. У меня проблема с копией объекта SeismicCube с разным размером. Мне нужно изменить размер K-индекса куба для повторной выборки времени/глубины. Все, что я знал, это клонировать куб с точно такими же свойствами. Что-то вроде этого:

 Template template = source.Template;
 clone = collection.CreateSeismicCube(source, template);

с исходным является исходный куб, и клон - результат. Можно ли найти способ изменения размера клона до разного размера? размер индекса K (длина трассы). Я изучил методы перегрузки CreateSeismicCube, но до сих пор не могу понять, как заполнить правильные параметры. У вас, ребята, есть решение по этой проблеме? Заранее спасибо.

Теги:
petrel
ocean

1 ответ

1
Лучший ответ

Когда вы создаете сейсмический куб, используя перегрузку, которая клонирует из другого сейсмического куба, вы не можете изменять его в любом направлении (I, J или K). Если вам нужен другой размер K для вашего нового куба, вы должны создать его, предоставляя длинный список аргументов, который включает в себя векторы, описывающие его вращение и интервал. Вы можете сгенерировать векторы из исходного куба, используя образцы, близкие к исходному образцу (0,0,0) исходного сейсмического куба.

Подумайте, что у вас есть следующие места в кубе, выраженные их индексами I, J, K. Так как вектор K легко генерируется, но только для частоты дискретизации, я сосредоточусь на я и J здесь.

Во-первых, получите позиции в начале координат и две соседние трассы.

Point3 I0J0 = inputCube.PositionAtIndex( new IndexDouble3( 0, 0, 0 ) );
Point3 I1J0 = inputCube.PositionAtIndex( new IndexDouble3( 1, 0, 0 ) );
Point3 I0J1 = inputCube.PositionAtIndex( new IndexDouble3( 0, 1, 0 ) );

Теперь создайте сегменты в направлениях я и J и используйте их для создания векторов.

Vector3 iVector = new Vector3( new Segment3( I0J0, I1J0 ) );
Vector3 jVector = new Vector3( new Segment3( I0J0, I0J1 ) );

Теперь создайте вектор K из выборки входного куба. Обратите внимание, что вы должны отрицать значение.

Vector3 kVector = new Vector3( 0, 0, -inputCube.SampleSpacingIJK.Z );
  • 0
    Большое спасибо. Наконец кто-то предлагает ответ. Проблема решена другим решением, которое мне было легче понять. Но ваш ответ даст мне больше возможностей для решения этой проблемы.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню