Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Cahill-Keyes] Conformal version #16

Open
Fil opened this issue Mar 31, 2018 · 3 comments
Open

[Cahill-Keyes] Conformal version #16

Fil opened this issue Mar 31, 2018 · 3 comments
Labels

Comments

@Fil
Copy link
Member

Fil commented Mar 31, 2018

We could use the Schwarz-Christoffel transformation. http://www.genekeyes.com/CAHILL-VARIANTS/Cahill-Conformal.html shows one made by @jrus

@jrus
Copy link

jrus commented Apr 6, 2018

Yeah, I have been intending for a long time to properly implement this in D3. The original SCToolbox version I made was outrageously slow to compute, so I let my computer run for a couple days finding the positions of a pretty dense grid of Chebyshev nodes in latitude/longitude for half an octant, and used Chebfun to efficiently compress and evaluate that (that method should be entirely suitable for real-time rendering of many points).

It would in general be a good idea to implement a few parts from the guts of Chebfun in JavaScript, and use those for many map projections. It should in many cases dramatically speed up computations vs. the existing implementations of D3 projections, especially if the inner loops can be implemented as wasm.

I've had a lot of trouble finding time to work on this kind of project in the past year, as I've been taking care of a (now 20 month old) baby full time. But I still do intend to sometime finish here. I hope I can also properly write a paper about this projection at some point, to submit to some kind of cartography conference/journal. And there are a couple related map projections which I would like to produce (both an equal-area version, and one optimizing for distance errors), but which will take some significant research effort to figure out.

Not sure it would be reasonable to call this particular projection "Cahill–Keyes" though. I would call it something like the "Conformal Octahedral Butterfly" projection. (I don't personally like sticking my own name on things, but also wouldn’t really be comfortable sticking someone else’s name on a project I spent a few months figuring out the details for.)

@Fil Fil added the idea label Jul 10, 2020
@Fil
Copy link
Member Author

Fil commented Aug 26, 2020

@jrus has implemented a few possibilities at https://observablehq.com/@jrus/conformal-octahedron

(but I can't find the link to the version with corners, à la Cahill.)

@jrus
Copy link

jrus commented Aug 27, 2020

There was never any such version until I spent a month or two of effort making one up in 2015 (Cahill’s “conformal” butterfly map was just an equilateral triangle). I still haven’t ported it to Javascript though.

It’ll take quite a bit more effort to write the paper explaining the construction. I’ll get around to it eventually though.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Development

No branches or pull requests

2 participants