Jump to content

Moon Hotspot


AirMe

Recommended Posts

10 hours ago, Lollerobot said:

So uh, I moved my stuff around and used the calculator... It came up with 500 possible spots as all my spots were 50% :D

 

Lat range it gave for me is -25 to -9.999 and Lon range is 37 to 70 and -130 to -159.

 

So I guess someone else can test around those ranges and use the calculator again with better luck.

For Moon


Colony Effectiveness: 99%
Location: 5.99990, 167.00000

Not sure the effectiveness difference between 99% and 100%, but this is as close as I got.

Link to comment
Share on other sites

  • Replies 1.4k
  • Created
  • Last Reply

Top Posters In This Topic

10 minutes ago, SeaBeeGipson said:

For Moon


Colony Effectiveness: 99%
Location: 5.99990, 167.00000

Not sure the effectiveness difference between 99% and 100%, but this is as close as I got.

4ba5975c2a.png

 

from lollerobot, seabeegibson, and masterhakai's coords it gives only 1 option:

lat=5.99999999 lon=168

 

need someone to confirm

Edited by Overlord Wes
Link to comment
Share on other sites

I used those numbers (including that number of 9s after the decimal place) and also got 99%.

Link to comment
Share on other sites

3 hours ago, Overlord Wes said:

4ba5975c2a.png

 

from lollerobot, seabeegibson, and masterhakai's coords it gives only 1 option:

lat=5.99999999 lon=168

 

need someone to confirm

99% is all ... Tnx though  ;^)

Link to comment
Share on other sites

I'm guessing the issue is the floating point correction needs to be something different. Unfortunately floating point calculations are not even consistent between CPUs so if the CN server code runs on a different computer it will give slightly different results.

 

Based on my calculations it should be one of these:

 

lat=5+(floating pt correction)&lon=167
lat=5+(floating pt correction)&lon=168
lat=6+(floating pt correction)&lon=167
lat=6+(floating pt correction)&lon=168

 

The floating pt correction can be 0, positive, or negative.

 

Since no one has tried lat=6&lon=168 and lat=6&lon=167 those are some obvious starting choices. And then try out other floating point offsets, i.e. lat=6.00000001&lon=168, lat=6.00000001&lon=167, lat=5.00000001&lon=167,  lat=4.99999999&lon=167, lat=5.99999998&lon=168, etc. There are a LOT of possibilities given all the possibilities for the floating point correction. I'm guessing 5 is less likely to need a floating point offset than 6, and given that 5, 167 and 5, 168 have already been tried, I'd focus on lat=6+(floating pt correction)&lon=167 and lat=6+(floating pt correction)&lon=168.

 

If anyone is coordinating on discord or wherever else I can join to help out in real time.

Nitty gritty details if anyone is curious: I modified the python code to allow some leeway in the comparison between the calculated effectiveness and actual effectiveness found at the test point. Here's the modified code and result it gave out:

 

import math

EFFECTIVENESS_THRESHOLD = 1e-6

class TestPoint:
    def __init__(self, lat, lon, effectiveness):
        self.lat = lat
        self.lon = lon
        self.effectiveness = effectiveness
        
class PossibleHotspot:
    def __init__(self, lat, lon):
        self.lat = lat
        self.lon = lon

def calculate_distance(test_point, hotspot):
    lat1 = math.radians(test_point.lat)
    lon1 = math.radians(test_point.lon)
    lat2 = math.radians(hotspot.lat)
    lon2 = math.radians(hotspot.lon)
    
    d = math.acos(math.sin(lat1) * math.sin(lat2) + math.cos(lat1) * math.cos(lat2) * math.cos(lon2 - lon1))
    return d

def calculate_effectiveness_unrounded(test_point, hotspot):
    distance = calculate_distance(test_point, hotspot)
    effectiveness = (distance * 124.362 / math.pi) / 100
    effectiveness = 1 - effectiveness
    effectiveness = max(effectiveness * 100, 50)
    return effectiveness

def calculate_effectiveness(test_point, hotspot):
    return math.floor(calculate_effectiveness_unrounded(test_point, hotspot))

def find_matching_hotspots(test_points):
    possible_hotspots = []
    for lat in range(-84, 85):
        for lon in range(-179, 180):
            hotspot = PossibleHotspot(lat, lon)
            match = True
            for test_point in test_points:
                unrounded_eff = calculate_effectiveness_unrounded(test_point, hotspot)
                if unrounded_eff >= test_point.effectiveness+1+EFFECTIVENESS_THRESHOLD or unrounded_eff < test_point.effectiveness - EFFECTIVENESS_THRESHOLD:
                    match = False
                    break
            if match:
                possible_hotspots.append(hotspot)
    return possible_hotspots

# Example test points
test_points = [
    TestPoint(26, -19, 50),
    TestPoint(-47.840, -52.57, 50),
    TestPoint(-74.150, 146.93, 50),
    TestPoint(74.51, 111.40, 50),
    TestPoint(5.99990, 167, 99),
    TestPoint(5, 168, 99),
    TestPoint(5, 167, 99),
    TestPoint(5.99999999, 167, 99),
    TestPoint(5.99999999, 168, 99),
]

matching_hotspots = find_matching_hotspots(test_points)

for hotspot in matching_hotspots:
    print(f"Matching hotspot: lat={hotspot.lat}&lon={hotspot.lon}")

 

Matching hotspot: lat=5&lon=167
Matching hotspot: lat=5&lon=168
Matching hotspot: lat=6&lon=167
Matching hotspot: lat=6&lon=168


** Process exited - Return Code: 0 **
Press Enter to exit terminal

 

Edited by Luna
Link to comment
Share on other sites

Here's a different approach: If anyone wants to try some throwaway points to narrow down the possibilities for the hotspot location here are a couple. They are throwaway points because they will not give 100%, but they should give 98% or 99%, and will narrow down the search for hotspot.

 

lat=5&lon=166 => If this gives 98%, the hotspot longitude must be 168. If it gives 99%, the hotspot longitude must be 167.

 

lat=4&lon=167 => If this gives 98%, the hotspot latitude must be 6+(floating pt correction). If it gives 99%, the hotspot latitude must be 5+(floating pt correction).

 

Link to comment
Share on other sites

@SeaBeeGipson I see you tested -7,-157. What was the effectiveness there? That's another convenient point that narrows down the possibilities for the hotspot. If you got 73% that means the hotspot lon is 167, and if you got 74%, that means the hotspot lon is 168.

 

@Einer What's the effectiveness at your Base and Mine? Those will definitely help narrow down the search too.

Edited by Luna
Link to comment
Share on other sites

2 hours ago, Luna said:

@SeaBeeGipson I see you tested -7,-157. What was the effectiveness there? That's another convenient point that narrows down the possibilities for the hotspot. If you got 73% that means the hotspot lon is 167, and if you got 74%, that means the hotspot lon is 168.

Asked him on discord and he confirmed 73%

Link to comment
Share on other sites

1 hour ago, Overlord Wes said:

Asked him on discord and he confirmed 73%

 

Ok, that narrows it down to:

 

lat=5+(floating pt correction)&lon=167
lat=6+(floating pt correction)&lon=167
 

Here's what I suggest trying next:

 

lat=6&lon=167

lat=6.00000001&lon=167

lat=4&lon=167 (NOTE: won't give 100%, will give 98% or 99% but guaranteed to eliminate lat of either 5+correction or 6+correction)

lat=5.99999996&lon=167
 

Knowing the effectiveness of @Einer's base would still be super helpful and would serve the same purpose as testing lat=4&lon=167 but without having to use up another move.

 

Link to comment
Share on other sites

  • 5 weeks later...

I was able to triangulate more after needing to rebuild a wonder and having it land at 52% effectiveness. Maybe down to the last option?

 

ZORGpH2.png

Link to comment
Share on other sites

  • 4 weeks later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...