[Difx-users] difx2mark4 bug {External}

John Barrett barrettj at mit.edu
Tue Feb 13 11:56:52 EST 2024


Hi Alexey,

I'm not entirely sure why the lowercase convention was enforced 
originally.  It is possibly due to the fact that DiFX takes all 2-letter 
codes and capitalizes them (e.g. Wf becomes WF) in the input file?
So while your patch works for this particular case (JL (vex)-> JL (difx) 
-> JL (mk4)) it changes the convention used by most other sites where it 
is assumed (Wf (vex) -> WF (difx) -> Wf (mk4) ), and will break
the ovex/root file that is generate (e.g. $FREQ section will no longer 
map to the proper station codes). The vex 'parser' (and I used that word 
very lightly) in difx2mark4 is extremely primitive and effectively is 
just looking for entire sections of the vex file to cut and paste into 
the ovex/root file, so it is not sophisticated enough to figure out all 
of the instances of a station 2-character code and replace them with 
what the user may actually desire.

I have forked the difx-dev branch here:

https://github.com/jpbarrett/difx.git

and added a patch which will introduce the behavior you want for just 
the stations specified on the command line (the default behavior will 
remain as it is now), using a new option "-c" or "--case-keep".

So for example if you run:

difx2mark4 -c GS -c WF -b X 0 10000000 -s ./station.codes -e 8899 -o -v 
./h_1000.difx

And pass the station codes you want to preserve as all upper case, with 
the "-c" option, you will see a message to the effect of:

    processing $GLOBAL block
       processing $EXPER block
       processing $MODE block
*      Did not lower case-ify the station code: GS
       Did not lower case-ify the station code: WF *
       processing $STATION block
       processing $ANTENNA block

And the output ovex/root file "should" preserve the station code cases 
in the output.

I actually don't have any data which has station codes which are all 
upper case, so I can't tell if this works properly for your situation or 
not. If you get a chance, can you clone and compile this version of 
difx2mak4 and let me know if it works for the "JL" station situation? If 
it does, I will put in a pull request for this change to merge it to the 
dev branch.

I will also note, that if the -c code is erroneously applied to a 
station which in fact has a upper-lower case code in the vex file, then 
you will end up with a broken ovex/root file and fourfit will refuse to 
run on it as follows:

fourfit -c ./cf_3686_GEHSVY_pstokes2  -b GE -P XX ./8899/105-1800/
fourfit: missing FREQ section for station G
fourfit: Error filling in station parameters
fourfit: Failure parsing observe vex portion of 
'/home/barrettj/work/projects/hops-git/build/test_data/vt9105/8899/105-1800//0016+731.341E5I'
fourfit: The above errors occurred while processing
fourfit: ./8899/105-1800//0016+731.341E5I
fourfit: the top-level resolution is as follows:Error reading root for 
file ./8899/105-1800/, skipping

Let me know how it goes,

Best,

John

On 2/12/24 5:56 PM, Geoffrey B. Crew wrote:
> John (in CC) was looking at the issue, and as you've discovered, it's 
> not quite as trivial as you thought.
>
> My recollection is that it is in fact a "standard" that two-letter 
> codes have this camel case (first letter upper and second lower) 
> convention, but I don't know how strict that is. Clearly the 
> difx2mark4 code is trying to be correct here.
>
> A confusing issue (to me anyway) is that the vex2difx process seems to 
> elevate both to uppercase which I suspect is for historical reasons 
> (rather than an optimal design choice).
>
> Anyway, if you can modify your vex to use 'Jl' rather than 'JL' you 
> should have no issues.
>
> On 2/12/24 17:29, Alexey Melnikov via Difx-users wrote:
>> Dear all,
>>
>> I need to withdraw my patch (it broke other cases) and ask for 
>> advise. In
>> DiFX *.input files all 2-symbol station names are converted to capitals
>> dispite how they were written in *.vex.
>>
>> In my particular case, difx2mark4 fails since I have station named in 
>> capitals
>> in vex, like 'JL'. So after line of code patched in my patch in turns 
>> out to
>> 'Jl' and ovex file become wrong.
>>
>> Does it mean that the better solution would be to keep 2-symbol 
>> station names
>> in capitals when executing difx2mark4? Of course, another solution is 
>> to keep
>> 2-symbol station names in sched's station.dat file as 'Jl', not 'JL'.
>>
>> regards,
>> Alexey
>>
>>
>>
>> On 20240212 17:57:56, Adam Deller via Difx-users wrote:
>>> Thanks, Alexey.
>>>
>>> Hopefully someone from Haystack (Geoff, John?) could take a look at 
>>> this
>>> and merge if happy? We should aim to get a new release off the git 
>>> repo in
>>> the not too distant future, as the number of small bugs fixed is 
>>> starting
>>> to stack up.
>>>
>>> Cheers,
>>> Adam
>>>
>>> On Mon, 12 Feb 2024 at 11:57, Alexey Melnikov via Difx-users <
>>> difx-users at listmgr.nrao.edu> wrote:
>>>
>>>> Dear DiFX community,
>>>>
>>>> A few days ago I got an annoying bug in the difx2mark4. In my case 
>>>> I have
>>>> station in the vex file with 2-symbol code in capitals (say 'JL'), 
>>>> after
>>>> correlation I have run difx2mark4 and got an error in the root file 
>>>> for
>>>> this
>>>> station. In occures that somebody converts 2-nd symbol of station 
>>>> name to
>>>> lower case, what cause problem of different tags in the ovex file. 
>>>> Patch
>>>> file
>>>> and the path to that file in difx2mark4 source code are attached.
>>>>
>>>> Can somebody help to review patch and incorporate it to the 
>>>> codebase? All
>>>> latest master_tag versions are affected, but there is only single 
>>>> release
>>>> in
>>>> git, so, I think I need somebody who knows what to do.
>>>>
>>>> regards,
>>>> Alexey
>>>>
>>>> -- 
>>>> Best regards,
>>>> Alexey Melnikov, Scientific Researcher
>>>> Laboratory of Radio Astronomy Observations
>>>> The Institute of Applied Astronomy RAS
>>>> St.-Petersburg, Russia, tel. +7 (812) 2751106
>>>>
>>>>
>>>> Please avoid sending me Word or PowerPoint attachments.
>>>> See http://www.gnu.org/philosophy/no-word-attachments.html
>>>> _______________________________________________
>>>> Difx-users mailing list
>>>> Difx-users at listmgr.nrao.edu
>>>> https://listmgr.nrao.edu/mailman/listinfo/difx-users
>>>>
>>>
>>> -- 
>>> !=============================================================!
>>> Prof. Adam Deller
>>> Centre for Astrophysics & Supercomputing
>>> Swinburne University of Technology
>>> John St, Hawthorn VIC 3122 Australia
>>> phone: +61 3 9214 5307
>>> fax: +61 3 9214 8797
>>> !=============================================================!
>>> _______________________________________________
>>> Difx-users mailing list
>>> Difx-users at listmgr.nrao.edu
>>> https://listmgr.nrao.edu/mailman/listinfo/difx-users
>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listmgr.nrao.edu/pipermail/difx-users/attachments/20240213/05d528a0/attachment-0001.html>


More information about the Difx-users mailing list