332 Commits

Author SHA1 Message Date
Justin Kunimune
aaf01a4dac stop using multilayered inverse raster
also change the filenames because they're .txts now, not .csvs.
2023-08-24 21:51:58 -07:00
Justin Kunimune
bceb9a07d3 update Elastik code for new data file format
I updated the polygon code to work on the new sometimes-inside-out-but-always-closed boundary polygons.  I also updated the parser to expect the word "boundary" rather than "border".  I also went ahead and tried to simplify the spline code based on the assumption that the nan gradients will never be used.
2023-08-19 20:33:41 -07:00
Justin Kunimune
a78f58eb9d make Supermap fonts smaller
idk why I didn't notice before, but it was Supercramped.
2023-08-19 20:29:10 -07:00
Justin Kunimune
cdd074e8a9 Lint everything
it's onestly weird to think that I originally wrote all this in an IDE that didn't check these things.  there was a *lot* of unused code, as it turns out.
2023-08-19 20:28:33 -07:00
Justin Kunimune
07dfc384bd use multilayered inverse raster
I set it to use the new projection format, where each section has its own inverse raster.  it does make the poles better in I and II, but it makes the ends of the tears much worse.  I need to keep tweaking, I gess.
2023-07-26 18:35:42 -07:00
Justin Kunimune
78a20224c2 patch up holes
it was the slite refactoring that broke it.
2023-07-23 16:30:05 -07:00
Justin Kunimune
6b74bfd0df reasonable stop condition
I set it up so if the iteration gets stuck in a local minimum, it will terminate and return that local minimum.  this seemd to work more or less perfectly a minute ago, but I broke it either by reducing the inverse raster resolution or by refactoring the cosine calculation slitely.
2023-07-23 13:45:07 -07:00
Justin Kunimune
1e4fe2e680 province map 2023-07-23 08:12:23 -07:00
Justin Kunimune
6410b5877c manual scaling
I implemented a scale term on the step limiter equal to 1/cos(ф).
2023-07-08 11:22:30 -07:00
Justin Kunimune
20ae6d4d24 geodesic acceleration
I think I may have made it worse...
2023-07-07 20:32:14 -07:00
Justin Kunimune
13e94aee98 Levenberg–Marquardt
the simple Gauss–Newton with Armije backstep was insufficiently robust, so I implemented LM.  it seems to work better, but it's still not good enuff.  the step size doesn't turn as much as I would expect when λ goes up.  I think next it's time to implement the geodesic acceleration correction term.
2023-07-05 18:45:21 -07:00
Justin Kunimune
e2c2aa0b48 code cleanup
I removed some unnecessary parameters and changed some spacing and documentation.
2023-07-05 18:43:34 -07:00
Justin Kunimune
ca0d6de292 watertight polygons
I fixd the polygons!  I just had to remove the equal-to-endpoint rule and add a more specific exception for λ=-π.
2023-06-19 20:28:33 -07:00
Justin Kunimune
4675409725 everyone loves nested optimization
I added a backstepping line search to each iteration of my Newton-Raphson solver.  it actually gets rid of most of those rifts in Elastic Earth III where the folding was causing Newton-Raphson to have difficulty.  but there are still a few spots that are struggling.  also, it turns out a few points are still not getting counted in any polygon.
2023-06-19 09:54:21 -07:00
Justin Kunimune
b5ecec4eb9 It's called the *Global* Map Projection
I fixd the polygon so it stops excluding certain regions from the projection.  I almost got it rite the last time I updated the polgon algorithm, but I forgot to remove the nearestSegment bit, which makes no sense with the crossings counting tecneke.
2023-06-18 09:39:25 -07:00
Justin Kunimune
5832a6c196 don't modify parameters
the problem was that I was modifying the initial gess rather than copying it, and that gess was getting passd to multiple sections and then ultimately returnd as the anser.  now it clones it when it starts the iteratinos and then copies it agen when returning it, so the problem went away.

I also made the cropAtPi checkbox work, which was onestly the thing I was doing in the first place (I had no idea this was the root of the problem).  and I removed the projected border because I realized I didn't actually need it to implement cropAtPi
2023-06-17 18:09:11 -07:00
Justin Kunimune
b04f756b48 exact inverse solution
the edges of the mesh are a little crunchy now, which is weird because I thaut I set the termination condition to prevent that, but overall this looks quite good.  I hope it's correct.
2023-06-14 23:01:23 -07:00
Justin Kunimune
8494073bf1 smooth dateline
I made the projection smooth at the antimeridian, because it was bothering me.  it looks great now.  well, I did also notice that a bunch of points near the poles are going to NaN in the vector mapdesiner now, but that doesn't seem to be related to this change, so I'll deal with it later.
2023-06-10 09:46:59 -07:00
Justin Kunimune
a1d581e849 try and fail
I made an attempt to fix the error messages you get with Elastic II.  it didn't work.  I'm leaving this change in because I think it will probably be better in some situations regardless of the current errors.
2023-06-10 09:29:44 -07:00
Justin Kunimune
f950e04d54 basic inverse projection
I implemented the simplest possible inverse projection.  I did end up converting the raster to cartesian coordinates so that the dateline doesn't get screwd up, but other than that it's very simple.  now it's just a question of adding that Newton Raphson layer on top.
2023-06-10 09:28:48 -07:00
Justin Kunimune
d8c3b3c758 stop abbreviating words for no reason
because god forbid I have a function name longer than fifteen caracters; no one would read that!

but yeah, I hate past me, so here's a much better function name.
2023-06-10 09:21:21 -07:00
Justin Kunimune
0afb0b157b more like De-clipse! (got 'em)
delete eclipse files because eclipse is bad.
2023-06-10 09:19:06 -07:00
Justin Kunimune
ca8842cd56 continuity
I made the gradients continuus along the borders.
2023-06-08 20:00:35 -07:00
Justin Kunimune
7329d54c0f make orthodromes finer
I need this so I can use orthodromes to test my meshes.
2023-06-08 19:20:32 -07:00
Justin Kunimune
6127018257 the dangers of copying and pasting code
I found the issue . it was a 2 that should have ben a 4, and a bunch of λs that should have been фs.  easy.
2023-06-07 20:57:16 -07:00
Justin Kunimune
9a10802727 Elastic Earth projections
I implemented the Elastic projections!  this is just a first pass, so of course there are issues to be worked out.  the oceanic one has a few particular longitudes that it won't project, and the gradient calculation seems to be rong near the section edges.  I also haven't synckd up the section gradients at seams.  overall, tho, I'm surprised how good I got the gradient calculation, and the interpolation in general, on the first try.  I also haven't done any of the inverse projection yet, but I intend to do a better job with these ones than I did with Danseiji's inverse projections.

I also did some light refactoring; Meshed -> Danseiji and setParameters -> initialize, and +docstrings, so that accounts for most of the modified files.
2023-06-06 21:05:39 -07:00
Justin Kunimune
0a4a3ff1b9 new input map
I made a political input map with administrative boundries at level 1.  it’s not very good.
2023-06-06 08:23:42 -07:00
Justin Kunimune
8ec7547e58
Update README.md 2023-06-05 23:24:37 -04:00
Justin Kunimune
0482c8572f
fix formatting in README.md 2023-04-11 21:48:09 -04:00
Justin Kunimune
6154dcb2de
add more installation notes
I’m annoyed that JavaFX 20 is not back-compatible.  back-compatibility is not highly valued enuff in the software industry.
2023-04-11 21:47:30 -04:00
Justin Kunimune
a1096e66e0
move an "and" and link to *Flattening the Earth* 2023-03-31 13:43:22 -04:00
Justin Kunimune
b31f8fa540 update README.md 2023-03-31 13:24:10 -04:00
Justin Kunimune
96e96d07e3 handle transparency correctly
yeah, a little surprising I hadn’t done this before now.
2023-03-15 12:14:57 -04:00
Justin Kunimune
eaaadbb188 updated input map generation
I made a map for Nutopia's "Pole to pole" and it involved cleaning up some of this old code.  I may have broken the graticules; I didn't test ti.
2022-12-17 20:38:24 -10:00
Justin Kunimune
d78764aa0d taking it to the next level
I thaut I increased the version last time, but it seems I did not.
2022-04-18 14:53:44 -04:00
Justin Kunimune
361e5d56e7 babieeee
I made a new map projection which is a zoomd in single face of a cahill-keyes projection, because it was requested.
2022-04-18 14:49:21 -04:00
Justin Kunimune
9317a98505 seven ate nine
I made it so that you can load a single image as just one octant of a globe.  it saves on memory when the maps are large.
2022-04-18 14:49:07 -04:00
Justin Kunimune
5c7e5223f1
sweet jesus what have I done
I explaind what I did.
2022-02-12 14:50:49 -05:00
Justin Kunimune
a831c29bd7 Speed of light!
I rote a script to automatically convert a bunch of equirectangular projections to dymaxion projections.  I had to refactor the other main apps slitely, because they were structured very poorly.
2022-02-12 14:47:31 -05:00
Justin Kunimune
5f0f13f1d9 So smart!
I opend this in IntelliJ.  it really is so much better than Eclipse.
2022-02-12 14:45:36 -05:00
Justin Kunimune
30dac48db7 welcome to the future 2021-04-25 21:30:07 -04:00
Justin Kunimune
564d144475 Alolan Egzecutable
I updated the executables with the graticule thing
2021-04-25 21:04:51 -04:00
Justin Kunimune
6920a1ae5f Graticule opcions!
I made it so that you can edit the graticule opcions.  it's in a configuracion text file.  I haven't documented this anywhere yet.  it's kind of jank.
2021-04-25 08:38:28 -04:00
Justin Kunimune
ffe2ad17be ew
I improovd the colors.
2021-03-17 15:13:51 -04:00
Justin Kunimune
2b5e381cb2 Just like old times
I set it back to Java 8, because They removed the javapackager functionality.
2020-11-01 15:18:52 -05:00
Justin Kunimune
f902916da4 I'm having a memory!
I adjusted it to not have memory errors.
2020-11-01 15:18:06 -05:00
Justin Kunimune
79f62412cd Bigger!
I increased the maximum map size.
2020-10-23 19:34:38 -04:00
Justin Kunimune
eb64c3f914 Pick your challenger
I just did it with some other map projections.
2020-07-28 16:31:02 -04:00
Justin Kunimune
f1a89292d3 Update graph - plotter.png 2020-07-15 22:07:53 -04:00
Justin Kunimune
391cadc4c7 Autocrop
Why did I ever think this was something people wanted? By default, the raster maps should look the same as the vector maps and their analysis. Also pseudocylindrical pole-point projections look really terrible by this default (though that's kind of their fault for being so bad).
2020-07-15 22:07:16 -04:00