update doc

This commit is contained in:
qwjyh 2024-01-07 18:58:29 +09:00
parent 49fa679d9a
commit 69a47a24e8
6 changed files with 97 additions and 12 deletions

View file

@ -13,6 +13,21 @@
* Visualize with GLMakie (or CairoMakie) * Visualize with GLMakie (or CairoMakie)
** Inspecting with GUI ** Inspecting with GUI
== Docs
Clone this repo, and
```sh
$ cd docs
$ julia --project -e 'using Pkg; Pkg.instantiate()'
$ julia --project make.jl
$ cd build
$ python -m http.server --bind localhost
```
== TODO == TODO
- [x] Printing - [x] Printing
- [ ] visualize - [ ] visualize

View file

@ -6,3 +6,9 @@
```@autodocs ```@autodocs
Modules = [CoordVisualize] Modules = [CoordVisualize]
``` ```
# ColorMapFuncs
```@autodocs
Modules = [CoordVisualize.ColorMapFuncs]
```

View file

@ -12,7 +12,7 @@ Readers are expected to be familiar with basics of julia.
### Preparing ### Preparing
This will take a few minutes. This will take a few minutes.
```juliarepl ```julia-repl
julia> # type ] julia> # type ]
(@v1.10) Pkg> activate . (@v1.10) Pkg> activate .
@ -21,24 +21,52 @@ julia> # type ]
``` ```
### Parse log ### Parse log
```juliarepl ```julia-repl
julia> using CoordVisualize julia> using CoordVisualize
julia> interactive_edit_log("coord_log_1.txt", "coord_log_2.txt") julia> iedit_log("coord_log_1.txt", "coord_log_2.txt")
... ...
Follow the instruction Follow the instruction
... ...
``` ```
### CoordVisualize ### Visualize the log
Get map image file and place it as "map.png". Get map image file and place it as "map.png" beforehand.
```juliarepl ```julia-repl
julia> using GLMakie, CoordVisualize julia> using GLMakie, CoordVisualize
julia> tlog = include("<exported log file>"); julia> tlog = Observable(include("<exported log file>"))
...
julia> # or
julia> tlog = Observable(interactive_edit_log("log files", "log file2"))
...
julia> include("<path to root>/interactive_viz.jl") julia> include("<path to root>/interactive_viz.jl")
...
```
Available colorschemes at https://juliagraphics.github.io/ColorSchemes.jl/stable/catalogue/ .
Available colors at https://juliagraphics.github.io/Colors.jl/stable/constructionandconversion/#Color-Parsing and https://juliagraphics.github.io/Colors.jl/stable/namedcolors/ .
### Edit the log
```julia-repl
julia> isplit_log!(tlog[], 3, 30)
... <with some prompts>
julia> iedit_note!(tlog[], 3)
... <with some promots>
julia> ijoin_logs!(tlog[], 5, 7)
... <with some prompts>
```
### Export the log
```julia-repl
julia> export_log(tlog[], "<filename>")
``` ```
## Low level ## Low level

View file

@ -94,7 +94,7 @@ inspector_options = grid!(
[1, 2] => toggle_inspector, [1, 2] => toggle_inspector,
width = options_width, width = options_width,
) )
fig[1:2, 2] = grid!( fig[1:2, 3] = grid!(
[0, :] => Label(fig, "Line", font = :bold), [0, :] => Label(fig, "Line", font = :bold),
[1, :] => line_options, [1, :] => line_options,
[2, :] => Label(fig, "Marker", font = :bold), [2, :] => Label(fig, "Marker", font = :bold),
@ -143,7 +143,7 @@ cbm = Colorbar(
ticklabelsize = 10, ticklabelsize = 10,
label = menu_mcolormapfunc.selection, label = menu_mcolormapfunc.selection,
) )
fig[1:2, 3] = grid!( fig[1:2, 2] = grid!(
[0, 1] => Label(fig, "line", font = :bold), [0, 1] => Label(fig, "line", font = :bold),
[1, 1] => cbl, [1, 1] => cbl,
[2, 1] => Label(fig, "marker", font = :bold), [2, 1] => Label(fig, "marker", font = :bold),

View file

@ -2,6 +2,9 @@ using Statistics
using Dates using Dates
using Printf using Printf
"""
Interactively parse log files and edit the log.
"""
function iedit_log(filenames...; writetofile = true) function iedit_log(filenames...; writetofile = true)
printstyled(stdout, "[CoordLog Editor] \n", color = :blue, bold = true) printstyled(stdout, "[CoordLog Editor] \n", color = :blue, bold = true)
logs = CoordLog[] logs = CoordLog[]
@ -118,6 +121,15 @@ function iedit_log(filenames...; writetofile = true)
return edited_logs return edited_logs
end end
"""
isplit_log!(
logs::AbstractVector{CoordLog{T}},
logid::Integer,
pointid::Integer,
) where {T}
Split the log. Supply notes interactively.
"""
function isplit_log!( function isplit_log!(
logs::AbstractVector{CoordLog{T}}, logs::AbstractVector{CoordLog{T}},
logid::Integer, logid::Integer,
@ -143,6 +155,11 @@ function isplit_log!(
insert!(logs, logid + 1, new_logs[2]) insert!(logs, logid + 1, new_logs[2])
end end
"""
iedit_note!(logs::AbstractVector{CoordLog{T}}, logid::Integer) where {T}
Edit the note at `logid`. Supply new note interactively.
"""
function iedit_note!(logs::AbstractVector{CoordLog{T}}, logid::Integer) where {T} function iedit_note!(logs::AbstractVector{CoordLog{T}}, logid::Integer) where {T}
1 logid length(logs) || 1 logid length(logs) ||
throw(ArgumentError("logid out of index: ¬ 1 ≤ $(logid)$(length(logid))")) throw(ArgumentError("logid out of index: ¬ 1 ≤ $(logid)$(length(logid))"))
@ -151,6 +168,11 @@ function iedit_note!(logs::AbstractVector{CoordLog{T}}, logid::Integer) where {T
logs[logid].note = note logs[logid].note = note
end end
"""
ijoin_logs!(logs::AbstractVector{CoordLog{T}}, logid1::Integer, logid2::Integer) where {T}
Join the logs at `logid1` and `logid2`. Supply new note interactively.
"""
function ijoin_logs!(logs::AbstractVector{CoordLog{T}}, logid1::Integer, logid2::Integer) where {T} function ijoin_logs!(logs::AbstractVector{CoordLog{T}}, logid1::Integer, logid2::Integer) where {T}
1 logid1 length(logs) || 1 logid1 length(logs) ||
throw(ArgumentError("logid1 out of index: ¬ 1 ≤ $(logid1)$(length(logid1))")) throw(ArgumentError("logid1 out of index: ¬ 1 ≤ $(logid1)$(length(logid1))"))

View file

@ -4,16 +4,29 @@ using ColorSchemes
""" """
Predefined color map functions. Predefined color map functions.
Receives
- `cmap`: colormap
- `logs`: vector of `CoordLog`
- `n`: number of returning ticks
and returns tuple of
1. vector of `Colorant`
2. ticks to pass to `Colorbar`, which is a Tuple of
1. vector of tick location (0 to 1)
2. vector of tick labels (strings)
Any function (or struct) which behaves like this can be used for
`lcolormapfunc` and `mcolormapfunc` kwargs of `trace2ds`.
# Types # Types
[`ColorMapFunc`](@ref) [`ColorMapFunc`](@ref) is a supertype of all of these.
# Interface # Interface
Define these methods for the ColorMapFunc. Define these methods for the ColorMapFunc.
(AbstractVector{CoordLog}) -> Vector{ [0, 1]}, ticks (cmap, logs, n) -> Vector{Colorant}, ticks
""" """
module ColorMapFuncs module ColorMapFuncs
@ -26,7 +39,8 @@ using Makie: wong_colors, Scene
# Methods # Methods
(f::ColorMapFunc)(cmap, logs) (f::ColorMapFunc)(cmap, logs)
Helper method. Helper struct for those use vector of 0 to 1 floats.
Example functions are [`Date`](@ref) and [`Altitude`](@ref).
""" """
abstract type ColorMapFunc end abstract type ColorMapFunc end