Ty for your answers. I'm not familiar with vtk export on python, and i'm
confident that finding my mistake will be easier than trying to understand
what you did there with pycall.
As for the nrrd code, it seems to be doing exactly what i did. I found one
mistake i did previously though, telling paraview to load float instead of
double values. Now with the function below, paraview loads the files
withoud error message, yet doesnt display anything reasonable, seems that
there is another mistake somewhere, i still assume it to be the "write"
function, where i'm not sure if it does what i want it to.
I'll keep you up to date, should i find my mistake
function exportVTK(DataMat, NameMat ,filename, dh, Nxyz)
nx = dh[1]*(Nxyz[1]-1);
ny = dh[2]*(Nxyz[2]-1);
nz = dh[3]*(Nxyz[3]-1);
x, y, z = ndgrid(0:dh[1]:nx, 0:dh[2]:ny, 0:dh[3]:nz );
nr_of_elements = length(x);
fid = open(filename, "w");
#ASCII file header
println(fid, "# vtk DataFile Version 3.0");
println(fid, "VTK from Julia");
println(fid, "BINARY\n");
println(fid, "DATASET STRUCTURED_GRID");
println(fid, "DIMENSIONS $(size(x,1)) $(size(x,2)) $(size(x,3)) ");
println(fid, "POINTS $(nr_of_elements) double");
write(fid, [x[:] y[:] z[:]] )
#append data
print(fid, "\nPOINT_DATA $(nr_of_elements) \n");
for i = 1:length(DataMat)
if size(DataMat[i], 2) == 3
#append a vector
println(fid, "\nVECTORS $(NameMat[i]) double");
elseif size(DataMat[i], 2) == 1
#append a scalar
println(fid, "\nSCALARS $(NameMat[i]) double");
println(fid, "LOOKUP_TABLE default");
else
error("DataMat $i is not a vector or scalar, or not shaped the way
it should be")
end
write(fid, DataMat[i]);
end
close(fid);
end
Am Samstag, 14. März 2015 17:49:50 UTC+1 schrieb Kristoffer Carlsson:
>
> One method that I have used to export VTK from Julia is simply using the
> VTK-library from python and calling it with PyCall.
>
> Something like this:
> https://gist.github.com/KristofferC/9a989a2c0518bb70009c
>
>
>
> On Saturday, March 14, 2015 at 1:41:04 PM UTC+1, Christian Dengler wrote:
>>
>> Hello,
>>
>> I'm trying to save my data as .vtk files, and ran into a problem with the
>> "print" and "write" function.
>>
>> Resumee of what would solve my problems:
>> - Using print(filestream, data), but omitting the square brackets, and
>> - using print(filestream, vector), and actually writes the vector, one
>> element per line
>>
>> Does anyone know how this is done?
>>
>> Another way of creating .vtk files using binary data, using the write
>> function, didn't lead to any success, but i cant really say whats wrong,
>> because the files are unreadable. Could it be, that write also somehow
>> includes brackets?
>>
>>
>> For those who want to see my problem in code, i attached a script,
>> creating and saving a simple veocity field as .vtk (ASCII) file.
>> After manually deleting the brackets, atleast the velocity can be
>> imported into paraview.
>> In order to create the binary .vtk file (thats not working at all), i
>> used to replace "ASCII" by "BINARY", and "print" in line 22 and 41 by
>> "write".
>>
>> Greetings,
>> Christian
>>
>