From 69f0ea37d0b80c5ba278b48a74018dc471e49421 Mon Sep 17 00:00:00 2001 From: Anandaroop Ray Date: Thu, 7 Mar 2024 17:32:55 +1100 Subject: [PATCH] works now --- src/CommonToAll.jl | 26 ++++++-------------- test/verify_aseggdf_write.jl | 4 +-- zz_portalcurtains/RDP.jl | 6 ++--- zz_portalcurtains/makeaseggdf_from_xyzrho.jl | 2 +- 4 files changed, 14 insertions(+), 24 deletions(-) diff --git a/src/CommonToAll.jl b/src/CommonToAll.jl index 33db38e3..bb383aa7 100644 --- a/src/CommonToAll.jl +++ b/src/CommonToAll.jl @@ -2103,34 +2103,24 @@ function formatasegfield(sfmt::Vector) return sfmt_fortran end -function writeasegdfn(vall::Vector, channel_names::Vector, sfmt::Vector, outfile::String) - #Write the definition file - +function writeasegdfnfromonerow(vonerow::Vector, channel_names::Vector, sfmt::Vector, outfile::String) sfmt_fortran = formatasegfield(sfmt) - - #Get the lengths of each element in the data vector - record = Array{Int}(undef, length(sfmt)) - for i = 1:length(sfmt) - record[i] = length(vall[1][i]) - end - open(outfile*".dfn", "w") do io #println(io, "DEFN ST=RECD,RT=COMM;RT:A4;COMMENTS:A76") #Geosoft - - for i=1:length(channel_names[1]) - if (length(vall[1][i]) == 1) - println(io, "DEFN $(i) ST=RECD,RT=; $(channel_names[1][i]): $(sfmt_fortran[i]): NULL=-99999.99, UNITS=$(channel_names[2][i]), LONGNAME=$(channel_names[3][i])") - else - println(io, "DEFN $(i) ST=RECD,RT=; $(channel_names[1][i]): $(record[i])$(sfmt_fortran[i]): NULL=-99999.99, UNITS=$(channel_names[2][i]), LONGNAME=$(channel_names[3][i])") - end + for (i, el) in enumerate(vonerow) + pre = isa(el, Array) ? string(length(el)) : "" + println(io, "DEFN $i ST=RECD,RT=; $(channel_names[1][i]): "*pre*"$(sfmt_fortran[i]): NULL=-9999999.99, UNITS=$(channel_names[2][i]), LONGNAME=$(channel_names[3][i])") end - println(io, "DEFN $(length(channel_names[1])+1) ST=RECD,RT=; END DEFN") flush(io) close(io) end end +function writeasegdfn(vall::Vector, channel_names::Vector, sfmt::Vector, outfile::String) + writeasegdfnfromonerow(vall[1], channel_names::Vector, sfmt::Vector, outfile::String) +end + function readxyzrhoϕ(linenum::Int, nlayers::Int; pathname="") # get the rhos fnameρ = joinpath(pathname, "rho_avg_line_$(linenum)_summary_xyzrho.txt") diff --git a/test/verify_aseggdf_write.jl b/test/verify_aseggdf_write.jl index 3becd047..092870a1 100644 --- a/test/verify_aseggdf_write.jl +++ b/test/verify_aseggdf_write.jl @@ -1,7 +1,7 @@ using HiQGA vall=[[100, 1, [2., 3.]], [100, 2, [3., 4.]]] sfmt = ["%4i", "%3i", "%4.1f"] -outfile = "myfile" +outfile = "myfile2" channel_names = [["Line", "FID", "dBzdt"], ["", "","pV/Am4"],["Line", "FID", "dBz/dt"]] -transD_GP.CommonToAll.writeasegdat(vall, sfmt, outfile, channel_names) +transD_GP.CommonToAll.writeasegdat(vall, sfmt, outfile) transD_GP.CommonToAll.writeasegdfn(vall, channel_names, sfmt, outfile) diff --git a/zz_portalcurtains/RDP.jl b/zz_portalcurtains/RDP.jl index d8e8ef8a..5c58f962 100644 --- a/zz_portalcurtains/RDP.jl +++ b/zz_portalcurtains/RDP.jl @@ -324,14 +324,14 @@ function writeaseggdffromxyzrho(nlayers::Int; src_dir="", dst_dir="", ] outfile = joinpath(dst_dir, fname*"_EPSG_$src_epsg") lines = transD_GP.getprobabilisticlinesfromdirectory(src_dir) - map(lines) do ln + map(enumerate(lines)) do (iline, ln) @info "Doing Line $ln" X, Y, Z, zall, ρlow, ρmid, ρhigh, ρavg, ϕmean, ϕsdev = transD_GP.readxyzrhoϕ(ln, nlayers; pathname=src_dir) for i in 1:length(X) + mode = (iline == 1) & (i ==1) ? "w" : "a" vonerow = [ln, X[i], Y[i], Z[i], zall, -ρhigh[:,i], -ρmid[:,i], -ρlow[:,i], -ρavg[:,i], ϕmean[i], ϕsdev[i]] - mode = i == 1 ? "w" : "a" transD_GP.CommonToAll.writeasegdat(vonerow, sfmt, outfile, mode) - transD_GP.CommonToAll.writeasegdfn(vonerow, channel_names, sfmt, outfile) + transD_GP.CommonToAll.writeasegdfnfromonerow(vonerow, channel_names, sfmt, outfile) end end end diff --git a/zz_portalcurtains/makeaseggdf_from_xyzrho.jl b/zz_portalcurtains/makeaseggdf_from_xyzrho.jl index 53abe7fc..78323891 100644 --- a/zz_portalcurtains/makeaseggdf_from_xyzrho.jl +++ b/zz_portalcurtains/makeaseggdf_from_xyzrho.jl @@ -3,7 +3,7 @@ includet("RDP.jl") src_epsg = 28354 nlayers = 52 src_dir = "/Users/anray/Documents/work/projects/largeaem/final_01/summaries_all/AusAEM_03_ERC/2021_ERC_01/summary" -dst_dir = "/Users/anray/Documents/work/projects/curtainstuff/ERC_01_dat" +dst_dir = "/Users/anray/Documents/work/projects/largeaem/final_01/aseggdf/" parts = split(src_dir,"/") fname = parts[end-2]*"_"*parts[end-1] RDP.writeaseggdffromxyzrho(nlayers; src_dir, dst_dir,