I noticed that all important "Geoprojections" are available in projections for a spherical reference models: GeoProjectionData function;
1 - I am trying using the sinusoidal projection for astronomical data purposes. I want to use the frames of this projection to plot astronomical points in that map , using right ascension and declination as the coordinates, both in degrees.
In the link below, is a data that can be used, the format is { {RA,DEC, Velociy},....}. Just need the RA, DEC parameters.
a. I got the data in {Dec, Ra} :
p = Reverse[#] & /@ rad[[All, {1, 2}]]
b.then I transformed the parameters DEC RA, to sinusoidal numbers:
dat = GeoGridPosition[GeoPosition[p], "Sinusoidal"][[1]]
c. I did the following code:
GeoListPlot[dat, GeoRange -> All, GeoProjection -> "Sinusoidal",
GeoGridLines -> Automatic,
GeoGridLinesStyle -> Directive[Dashing[{0.0005, 1 - 0.9950}], Green],
GeoBackground -> Black, Frame -> True,
FrameLabel -> {"RA (\[Degree])", "DEC (\[Degree])"},
PlotMarkers -> Style[".", 10, Red]]
And the resulting plot is:
But no data was plotted.
And the ranges of Frame Axis are wrong: the horizontal axis has to be middle to left 0 90 180, and middle to right 0 (or 360) 270 180.
In the Vertical Axis: -90(bottom) 0(center) +90(top)
EDIT 1:
The link to wolfram math world about sinusoidal projection : Sinusoidal
Answer
Edit: for general approach to Ticks, go there: GeoProjection for astronomical data - wrong ticks
data = Cases[ Import[FileNames["*.dat"][[1]]],
{a_, b_, c_} :> {b, Mod[a, 360, -180]}]; (*thanks to bbgodfrey*)
To show points you have to stick with GeoGraphics
. GeoListPlot
is designed for Entities
.
To add something more to the question I changed Ra to hours.
GeoGraphics[{Red, Point@GeoPosition@data},
GeoRange -> {All, {-180, 180}},
PlotRangePadding -> Scaled@.01,
GeoGridLinesStyle -> Directive[Green, Dashed],
GeoProjection -> "Sinusoidal",
GeoGridLines -> Automatic,
GeoBackground -> Black,
Axes -> True,
ImagePadding -> 25, ImageSize -> 800,
Ticks -> {Table[{N[i Degree], Row[{Mod[i/15 + 24, 24]," h"}]}, {i, -180, 180, 30}],
Table[{N[i Degree], Row[{i, " \[Degree]"}]}, {i, -90, 90, 15}]},
Background -> Black,
AxesStyle -> White,
TicksStyle -> 15]
Or change every option with Axes
to Frame
and:
With coloring:
pre = Cases[ Import[FileNames["*.dat"][[1]]], {a_, b_, c_} :> {b, Mod[a, 360, -180], c}];
data = pre[[All, {1, 2}]];
col = Blend[{Yellow, Red}, #] & /@ Rescale[pre[[All, 3]]];
GeoGraphics[{AbsolutePointSize@5,
Point[GeoPosition@data, VertexColors -> (col)]}, ...
pics = Table[
GeoGraphics[{AbsolutePointSize@5,
Point[GeoPosition[{#, Mod[#2, 360, -180 + t]} & @@@ data],
VertexColors -> (col)]}, PlotRangePadding -> Scaled@.01,
GeoGridLinesStyle -> Directive[Green, Dashed],
GeoProjection -> "Bonne", GeoGridLines -> Automatic,
GeoBackground -> Black, ImagePadding -> 55, ImageSize -> 400,
GeoRange -> "World", GeoCenter -> GeoPosition[{0, t}],
Background -> Black, FrameStyle -> White, FrameTicksStyle -> 15],
{t, -180, 170, 5}];
Export["gif.gif", pics, "DisplayDurations" -> 1/24.]
Comments
Post a Comment