Elite Observatory - Search your journal for potentially interesting objects, or notify you of new ones on the fly while exploring!

Alright guys, give this a spin. It's dynamically generated on page load from a galactic records csv hosted on EDAstro.

Full disclosure, I haven't tried it! Still sorting out a new computer and haven't installed Observatory myself yet! 🙃


Thanks to @Orvidius for making this easily consumable!

edit: Fixed an error with how gas giant values were being pulled from the csv.
 
Last edited:
Just for the record, that doesn't update in the criteria file, right? We still have to copy and paste it manually to keep current?
 
That's correct. I'll make it self-update in future versions, but for now it's a manual process.

The thresholds shouldn't change that often though, as is the nature of record setting values.
 
Not sure what's up, but every time I click the button to "read all logs" I get a bunch of errors and the program isn't able to read my logs.
 

Attachments

  • Error_Detail - 2021-03-23 - 01-18-31-662.jpg
    Error_Detail - 2021-03-23 - 01-18-31-662.jpg
    151.8 KB · Views: 22
Not sure what's up, but every time I click the button to "read all logs" I get a bunch of errors and the program isn't able to read my logs.

I haven't done that for a while so I tested it to see and it eventually worked it's way through, I have a lot of journals to read! Maybe something peculair about the system entry it crashed on.
 
Not sure what's up, but every time I click the button to "read all logs" I get a bunch of errors and the program isn't able to read my logs.

It looks like it's crashing on one of your logs for 11-Apr-2017 - for some reason one of the asteroid belts scanned in Hyades Sector FB-X c1-15 is showing a rotational period of 'infinity', and that is confusing the JSON parser. I've checked my logs (~380MB, almost a million lines) and I've never encountered an infinite rotational period before!

Assuming it's just the single journal causing you problems, your best bet is probably to temporarily rename the affected file. You can do that by hitting Start and typing:
%UserProfile%\Saved Games\Frontier Developments\Elite Dangerous
That'll put you in the folder where your journals are stored. Then you're looking for one starting Journal.170411<etc> - rename it to Broken.170411<etc> and retry. Once you're done reading all logs, you can rename it back.

The new version of Observatory uses a spangly new JSON parser, so hopefully it'll fix this particular problem - we just need to be patient for it's release :)
 
A small update on the rewrite!

The bulk of the really boring and tedious work is now done (monitoring and deserializing the journal, building a framework on which to write plugins, dynamically loading said plugins, etc.) which means I can settle into the much more interesting work of making it actually do things!

1616539333806.png


While this may not look like much, getting the Explorer plugin loaded and writing back scan events to the main window is a huge stepping stone in getting a working final product. Expect much more visible progress very soon!
 
Another tidbit that I think people might be more excited about. I have the first pass at the new custom criteria evaluator working!

Using the Taylor's Ring criteria from earlier in this thread as an example:

XML:
<Criteria Comparator="And">
    <Criteria Comparator="Less" Value=".25">
        <Operation Operator="Divide">
            <FirstValue Type="Operation">
                <Operation Operator="Subtract">
                    <FirstValue Type="EventData">Ring:1:OuterRad</FirstValue>
                    <SecondValue Type="EventData">Ring:1:InnerRad</SecondValue>
                </Operation>
            </FirstValue>
            <SecondValue Type="EventData">Radius</SecondValue>
        </Operation>
    </Criteria>
    <Criteria Comparator="Equal" Value="1">
        <Operation Operator="None">
            <FirstValue Type="EventData">Ring:Count</FirstValue>
        </Operation>
    </Criteria>
    <Description>Taylor's Ring</Description>
    <Detail>
        <Item>PlanetClass:</Item>
        <Item>DistanceFromArrivalLS</Item>
    </Detail>
</Criteria>

Code:
rings.count == 1 && (rings[0].outerRad - rings[0].innerRad) / radius < 0.25

This should hopefully make things much easier for people trying to come up with new criteria.

I still have some work to do, such as implement a way to decorate the criteria with custom naming and notification details, but the general gist is that you will use C#-like syntax like this in a text file to simply evaluate a true/false expression, with one criteria per line (plus whitespace for readability).
 
Last edited:
I'm familiar with this error, but made a bugfix for it a long time age (v0.3.19.262). What version are you using?

The latest that was on the GitHub site at the time I wrote that message. It was version 0.5.21.014.

First time I had heard of the program and decided to try it out.

EDIT: I should add I used the "installer" version instead of the one you just download and run - installed into the default location.
 
Last edited:
Just tried the eve version that you just run - same issue - that same file that MattG mentioned.

I'll try temporarily editing that file and see.
 
Last edited:
Oh hey, I see the problem.

MattG's workaround of renaming the problem file will get you going for now, and I'll get a proper bugfix out soon.
 
OK, seems I have a lot of logs from, at least, that time period with the " "RotationPeriod":inf " issue.

They all seem to be astroid belt clusters. I'm going through all the journals and renaming those parts to be " "RotationPeriod":0 "; and it seems to be working fine. I'll see if it causes issues anywhere else though.
 
Another tidbit that I think people might be more excited about. I have the first pass at the new custom criteria evaluator working!

Using the Taylor's Ring criteria from earlier in this thread as an example:

XML:
<Criteria Comparator="And">
    <Criteria Comparator="Less" Value=".25">
        <Operation Operator="Divide">
            <FirstValue Type="Operation">
                <Operation Operator="Subtract">
                    <FirstValue Type="EventData">Ring:1:OuterRad</FirstValue>
                    <SecondValue Type="EventData">Ring:1:InnerRad</SecondValue>
                </Operation>
            </FirstValue>
            <SecondValue Type="EventData">Radius</SecondValue>
        </Operation>
    </Criteria>
    <Criteria Comparator="Equal" Value="1">
        <Operation Operator="None">
            <FirstValue Type="EventData">Ring:Count</FirstValue>
        </Operation>
    </Criteria>
    <Description>Taylor's Ring</Description>
    <Detail>
        <Item>PlanetClass:</Item>
        <Item>DistanceFromArrivalLS</Item>
    </Detail>
</Criteria>

Code:
rings.count == 1 && (rings[0].outerRad - rings[0].innerRad) / radius < 0.25

This should hopefully make things much easier for people trying to come up with new criteria.

I still have some work to do, such as implement a way to decorate the criteria with custom naming and notification details, but the general gist is that you will use C#-like syntax like this in a text file to simply evaluate a true/false expression, with one criteria per line (plus whitespace for readability).

Hurrah for the end of fiddling with xml
 
Quick update on the rewrite!

There has been a change of plans in how the UI structure will work. Specifically the console and existence of plugin UIs.

While the original plan was a console interface as the only UI for the "Core" program and any GUI would be offered by plugins, I ran into several issues with getting that to work smoothly and have abandoned the idea. Going forward the core program will have its own GUI and there will be no text-based console available.
"But wait!", you exclaim, with the fury of a thousand penguins, "the Linux version was going to be console only! Does that mean it's no longer happening?!"
Well there's good news as well. I'm abandoning WPF as my UI framework and switching to Avalonia, which means the GUI will work in both Windows and Linux desktop environments. I actually don't expect this to slow me down much, on account of the overall reduction in complexity for the project making up for the time lost to work put into the WPF UI (and my being slow enough in the first place that it would be difficult to measure being slower).

Overall development status:
Log and ancillary files reading/monitoring: Done
Complete journal deserialization: Done
Plugin dll dynamic loading (w/ signature check): Done
UI: Started
Explorer Plugin: Started
Other Plugins (Prospector/Notifier/Speech/Overlay): Not started (reference libraries created in some cases)

I'm planning to release a beta when the UI and the Explorer plugin are complete so that things are "usable". I'm not willing to call it a full release until I reach feature parity with the current version of Observatory.
 
Hello @Vithigar , first of all, thank you for this great tool! I am using it daily and it helped me to discover many interesting things on my exploration trips...

I'm sorry to bother you with such a simple request, but what seems to be simple stuff for one, is a great challenge for the other...

I was looking for a custom criteria, that would allow me to go through my journals and alert me of interesting combinations, like:

  • ELW orbiting another ELW
  • WW orbiting ELW
  • ELW orbiting GG
etc...

I tried to understand the syntax of the language:

Code:
<!-- Check for ELW orbiting another ELW-->
<Criteria Comparator="And">
    <Criteria Comparator="Equal" Value="1">
        <Operation Operator="None">
            <FirstValue Type="EventData">Parent:PlanetClass:Earthlike Body</FirstValue>
        </Operation>
    </Criteria>
    <Criteria Comparator="Equal" Value="1">
        <Operation Operator="None">
            <FirstValue Type="EventData">PlanetClass:Earthlike Body</FirstValue>
        </Operation>
    </Criteria>
    <Description>ELW orbiting another ELW</Description>
</Criteria>

Anyone skilled enough to see whether that could work?

Thank you!
 
Last edited:
Hello @Vithigar , first of all, thank you for this great tool! I am using it daily and it helped me to discover many interesting things on my exploration trips...

I'm sorry to bother you with such a simple request, but what seems to be simple stuff for one, is a great challenge for the other...

I was looking for a custom criteria, that would allow me to go through my journals and alert me of interesting combinations, like:

  • ELW orbiting another ELW
  • WW orbiting ELW
  • ELW orbiting GG
etc...

I tried to understand the syntax of the language:

Code:
<!-- Check for ELW orbiting another ELW-->
<Criteria Comparator="And">
    <Criteria Comparator="Equal" Value="1">
        <Operation Operator="None">
            <FirstValue Type="EventData">Parent:PlanetClass:Earthlike Body</FirstValue>
        </Operation>
    </Criteria>
    <Criteria Comparator="Equal" Value="1">
        <Operation Operator="None">
            <FirstValue Type="EventData">PlanetClass:Earthlike Body</FirstValue>
        </Operation>
    </Criteria>
    <Description>ELW orbiting another ELW</Description>
</Criteria>

Anyone skilled enough to see whether that could work?

Thank you!
I'm on my phone right now which makes it difficult to verify with certainty, but at the very least it looks like you're on the right track. I'll take a closer look later when I'm at a computer.
 
Hello @Vithigar , first of all, thank you for this great tool! I am using it daily and it helped me to discover many interesting things on my exploration trips...

I'm sorry to bother you with such a simple request, but what seems to be simple stuff for one, is a great challenge for the other...

I was looking for a custom criteria, that would allow me to go through my journals and alert me of interesting combinations, like:

  • ELW orbiting another ELW
  • WW orbiting ELW
  • ELW orbiting GG
etc...

I tried to understand the syntax of the language:

Code:
<!-- Check for ELW orbiting another ELW-->
<Criteria Comparator="And">
    <Criteria Comparator="Equal" Value="1">
        <Operation Operator="None">
            <FirstValue Type="EventData">Parent:PlanetClass:Earthlike Body</FirstValue>
        </Operation>
    </Criteria>
    <Criteria Comparator="Equal" Value="1">
        <Operation Operator="None">
            <FirstValue Type="EventData">PlanetClass:Earthlike Body</FirstValue>
        </Operation>
    </Criteria>
    <Description>ELW orbiting another ELW</Description>
</Criteria>

Anyone skilled enough to see whether that could work?

Thank you!
I added that to my custom criteria file and another one where I just changed the orbiting body to be a WW.

Code:
<!-- Check for WW orbiting ELW-->
<Criteria Comparator="And">
    <Criteria Comparator="Equal" Value="1">
        <Operation Operator="None">
            <FirstValue Type="EventData">Parent:PlanetClass:Earthlike Body</FirstValue>
        </Operation>
    </Criteria>
    <Criteria Comparator="Equal" Value="1">
        <Operation Operator="None">
            <FirstValue Type="EventData">PlanetClass:Water world</FirstValue>
        </Operation>
    </Criteria>
    <Description>WW orbiting ELW</Description>
</Criteria>

After scanning all my journals it returned one WW orbiting an ELW, so I'd say you don't need to change anything - it's working.
 
Top Bottom