Petrel: Workflow Editor

Последнее сообщение
trex 300 16
Сен 08

Коллеги - кто нить подскажет (ибо по причине врожденной..эмммм....своей несообразительности) - макрос для расчета автокорреляционной функции сейсмической трассы (соответсвенно получается для куба или линии)? Чет немогу сообразить рекурсив с исспольльзованием промежуточной суммы как результата предыдущего шага и для следующего шага по дискрету в цикле. Чет я затупил з этими Set reference и исспользованием сейсмического калькулятора...Хелпа маловато для меня, мож кто че посоветует. Например :

Set reference

Variable B=>TekSum

Set reference

Variable C=>PromSum
f()

Numeric Expression

$l=1

Loop

Variable $l From 1 To 500

Seismic Calculator

Seismic input > test.sgy Expression or file: TekSum=PromSum+test_sgy(K+$l)

Set reference

Variable B=>Variable C

End Loop

Guest_ 183 17
Сен 08 #1

Может вот так получится?:

Loop

Variable $l From 1 To 500

Seismic Calculator

Seismic input > test.sgy Expression or file: TekSum_$I=PromSum+test_sgy(K+$l)

Seismic Calculator

Seismic input > test.sgy Expression or file: PromSum=TekSum_$I

End Loop


и референсы тогда вообще не нужны

trex 300 16
Сен 08 #2

Guest_ пишет:

Может вот так получится?:

Loop

Variable $l From 1 To 500

Seismic Calculator

Seismic input > test.sgy Expression or file: TekSum_$I=PromSum+test_sgy(K+$l)

Seismic Calculator

Seismic input > test.sgy Expression or file: PromSum=TekSum_$I

End Loop

и референсы тогда вообще не нужны

сенкс, попробую, но в таком случае будет создано 500 файлов сегвай TekSum_1,2,3.....500, или я чет путаю? и кроме того если я не ошибаюсь в левой части выражения в калькуляторе нельзя исспользовать счетчик или массив?
..........................
испытал, чет посчитало, но....подвисает петя, не могу даж посмотреть че посчитал (я убрал индексы массива в левой части , они по-моему лишние?)

Guest_ 183 17
Сен 08 #3

trex пишет:

сенкс, попробую, но в таком случае будет создано 500 файлов сегвай TekSum_1,2,3.....500, или я чет путаю? и кроме того если я не ошибаюсь в левой части выражения в калькуляторе нельзя исспользовать счетчик или массив?
..........................
испытал, чет посчитало, но....подвисает петя, не могу даж посмотреть че посчитал (я убрал индексы массива в левой части , они по-моему лишние?)


если не нужно 500 файлов сегвай, то надо просто
Seismic Calculator Seismic input > test.sgy Expression or file: PromSum=TekSum_$I
заменить на:
Set Name TekSum_$I=PromSum

в левой части можно использовать счетчик (не всегда, но можно) просто Педрель не понимает (или я не знаю как smile.gif) счетчики типа $I-1 или $I+1.

получилось в итоге?

trex 300 16
Сен 08 #4

Guest_ пишет:

если не нужно 500 файлов сегвай, то надо просто
Seismic Calculator Seismic input > test.sgy Expression or file: PromSum=TekSum_$I
заменить на:
Set Name TekSum_$I=PromSum

в левой части можно использовать счетчик (не всегда, но можно) просто Педрель не понимает (или я не знаю как smile.gif) счетчики типа $I-1 или $I+1.

получилось в итоге?

не срабатывает такая замена имени, ибо калькулятор не указывет на объект с тем же именем а указывает на объект как таковой, типа по времени создания. Во втором проходе калькулятор создает новый объект с тем же именем TekSum blink.gif и таких одноименных объктов может быть много, и поетому Set Name во втором проходе не находит старого объекта TekSum ибо он был переименован в первом в PromSum, несмотря на то что в предыдущем шаге второго прохода создан объект с именем TekSum, но это другой объект blink.gif

Да, я уже методом научного тыка узнал что счетчик нужно вручную накручивать внутри цикла ($k=$k+1, где мои 17 лет, подзабыл бейсик, и что в цикле Loop таки нужно вручную накручивать счетчик ), к этому выводу я пришел из-за того, что переменная в Loop почему то не участвует в части выражения (К-$l) и нужно (K-$k). Опять же - "минус" - ибо я ошибся, мне нужно опускать по времени на дискрет трассу относительно самой себя.....Но это мелочи, все считает и в Вашем первом варианте, физической замене объектов (только TekSum_$I без $I нужно, ибо таки создает не текущую сумму, а новую), но при попытке посмотреть - петя вылетает....Хотя если вручную в калькуляторе работать, все получается, но устанешь формулу суммы из 500 элементов набивать , да и некрасиво smile.gif.

Temr 140 16
Июн 09 #5

Seismic Calculator

Seismic input > test.sgy Expression or file: TekSum=PromSum+test_sgy(K+$l)

какая операция выполняется должна быть выполнена калькуляторе ?

trex 300 16
Июн 09 #6

Temr пишет:

Seismic Calculator

Seismic input > test.sgy Expression or file: TekSum=PromSum+test_sgy(K+$l)

какая операция выполняется должна быть выполнена калькуляторе ?


эммъ, сорри не понял вашего вопроса, прям как телеграмма - тчк зпт wink.gif.....Я бпросил сие занятие, нашел выход - в pStax Джеографикса сей атрибут расчитывается отдельной операцией. Хотя как для общего развития все же нужно и к Пете применить.

Temr 140 16
Июл 09 #7

trex пишет:

эммъ, сорри не понял вашего вопроса, прям как телеграмма - тчк зпт wink.gif.....Я бпросил сие занятие, нашел выход - в pStax Джеографикса сей атрибут расчитывается отдельной операцией. Хотя как для общего развития все же нужно и к Пете применить.

))) телеграмма по поводу вашего макроса
это исходный макрос
1.Set reference Variable B=>TekSum
2.Set reference Variable C=>PromSum
3.f() Numeric Expression $l=1
4.Loop Variable $l From 1 To 500
5.Seismic Calculator Seismic input > test.sgy Expression or file: TekSum=PromSum+test_sgy(K+$l)
6.Set reference Variable B=>Variable C
7.End Loop
Какая операция должна быть выполнена на 5 шаге ( в сейсмике не силен - можно поподробнее))

Go to top