วิธีการตั้งค่าไทม์สเตปที่กำหนดเองสำหรับชุดของไฟล์ VTK ดั้งเดิมใน ParaView

ฉันมีลำดับของไฟล์ VTK ดั้งเดิม เช่น: file_0.vtk, file_1.vtk, file_2.vtk ซึ่งฉันสามารถเปิดใน ParaView เป็นอนุกรมเวลาได้ (อธิบายไว้ที่นี่ ) เป็น file_..vtk และลำดับของไฟล์สามารถดูและเคลื่อนไหวได้โดยใช้การควบคุมเวลา ขณะนี้ฉันใช้ ParaView 4.4.0

ไฟล์ VTK ดั้งเดิมจะมีลักษณะดังนี้ โดยที่ค่าการประทับเวลาจะถูกเก็บไว้ในส่วนหัว (บรรทัดที่สอง):

# vtk DataFile Version 3.0
vtk output: file at time       0.0    
ASCII
...

อย่างไรก็ตาม ใน ParaView ค่าการก้าวเวลาจะถือว่าเหมือนกับดัชนี กล่าวคือ ดัชนี 0 คือเวลา 0.0 ดัชนี 1 คือเวลา 1.0 และดัชนี 2 คือเวลา 2.0 และการเพิ่มตัวกรอง AnnotateTime ยังแสดงขั้นตอนเวลาเหล่านี้สำหรับดัชนีลำดับเวลาอีกด้วย

อย่างไรก็ตาม ไฟล์ของฉันใช้การประทับเวลาแบบแปรผัน ตามที่อธิบายไว้ในส่วนหัวของแต่ละไฟล์ (ฉันไม่คิดว่ารูปแบบ VTK ดั้งเดิมมีวิธีระบุค่าเหล่านี้) ฉันได้ดูแอปพลิเคชันของ ParaView เพื่อดูว่ามีวิธีนำเข้าหรือแก้ไขค่าเหล่านี้หรือไม่ แต่ฉันหาไม่พบ

การใช้ Python Shell ในตัว นี่คือความพยายามที่น่าเศร้าของฉันในการสร้างวัตถุด้วย LegacyVTKReader:

files = ['file_0.vtk', 'file_1.vtk', 'file_2.vtk']
times = [0.0, 0.022608, 0.73781]
# First attempt
r = LegacyVTKReader(FileNames=files, TimestepValues=times)
print(r.TimestepValues)  # [0.0, 1.0, 2.0]

# Second attempt to try and fix it
r.TimestepValues = times
print(r.TimestepValues)  # [0.0, 0.022608, 0.73781]

Show(r)

ซึ่งแสดงอย่างถูกต้องในกล่องโต้ตอบ "ข้อมูล" ของวัตถุจนกว่าฉันจะเพิ่ม AnnotateTimeFilter ซึ่งจะรีเซ็ต 0 ถึง 0, 1 ถึง 1 และ 2 ถึง 2

มี วิธีใด ที่ใช้ point-click หรือ Python ในการอัปเดตค่าการจับเวลาสำหรับแต่ละดัชนีของวัตถุ VTK ดั้งเดิมใน ParaView หรือไม่


person Mike T    schedule 18.11.2015    source แหล่งที่มา


คำตอบ (1)


ฉันตรวจสอบคำตอบของคุณและไม่พบวิธีที่จะทำสิ่งที่คุณถามโดยตรง

อย่างไรก็ตาม นี่เป็นวิธีแก้ปัญหาทางอ้อม (นำมาจาก รายชื่ออีเมล paraview):

1. แปลงไฟล์ vtk ของคุณเป็นไฟล์ xml paraview (เช่นไฟล์ VTU หรือ VTM) : เปิดไฟล์ vtk ของคุณด้วย paraview และเขียนไฟล์ใหม่ด้วย File > Save Data คุณต้องตรวจสอบ "เขียนการประทับเวลาทั้งหมดเป็นชุดไฟล์"

<แข็งแกร่ง>2. สร้างไฟล์ข้อมูล ParaView (.pvd) ในไฟล์นี้ คุณสามารถระบุค่าลำดับเวลาสำหรับแต่ละไฟล์ได้ นี่คือตัวอย่าง:

    <VTKFile type="Collection" version="0.1" byte_order="LittleEndian">
        <Collection>
            <DataSet timestep="0"         file='file_0.vtu'/>
            <DataSet timestep="0.022608"  file='file_1.vtu'/>
            <DataSet timestep="0.73781"   file='file_2.vtu'/>
        </Collection>
    </VTKFile>

<แข็งแกร่ง>3. โหลดไฟล์ .pvd ใน paraview ตอนนี้คุณสามารถใช้ตัวกรองเวลาคำอธิบายประกอบกับค่าการก้าวเวลาที่ดีได้แล้ว

จำเป็นต้องมีขั้นตอนที่ 1 เนื่องจากวิธีแก้ปัญหาข้างต้นใช้ไม่ได้กับไฟล์ .vtk ตามที่อธิบายไว้ใน paraview wiki.

person Bertrand Gazanion    schedule 06.12.2015