This commit is contained in:
Peter Williams 2020-04-12 11:30:46 -04:00
Родитель cd81197248
Коммит 64301c110c
13 изменённых файлов: 135 добавлений и 87 удалений

17
.gitignore поставляемый
Просмотреть файл

@ -1,16 +1 @@
# Node rules:
## Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files)
.grunt
## Dependency directory
## Commenting this out is preferred by some people, see
## https://docs.npmjs.com/misc/faq#should-i-check-my-node_modules-folder-into-git
node_modules
# Book build output
_book
# eBook build output
*.epub
*.mobi
*.pdf
/public/

3
.gitmodules поставляемый Normal file
Просмотреть файл

@ -0,0 +1,3 @@
[submodule "themes/wwtguide"]
path = themes/wwtguide
url = https://github.com/WorldWideTelescope/zola-wwtguide.git

Просмотреть файл

@ -1,23 +1,72 @@
# WorldWide Telescope Layer Control API \(LCAPI\)
# WWT Layer Control API Guide: Source Code
This document describes how to write a software program to send data to WorldWide Telescope, using the Layer Control API \(LCAPI\). For a large amount of data the program might be a tool that reads data from a spreadsheet file, and then sends the appropriate fields of the data to WorldWide Telescope in appropriately sized buffers for visualization. For a smaller amount of data the entire file could be loaded in one go, or images or 3D models could be loaded. Time series data would typically be time-and-location dependent event data such as:
This repository contains the source code for the [WWT Layer Control API Guide].
The `master` branch of this repo gets published here:
* Earthquakes
* Volcanic eruptions
* Disease outbreaks
* More general social or natural events and trends
### https://docs.worldwidetelescope.org/lcapi-guide/1/
The time-series system does _not_ lend itself to data that varies either its location or has a complex intensity - such as weather systems, or forest fires - though it is possible a limited approach to this sort of data may be useful. The system does lend itself to events that occur over an extended period of time, given the ability to greatly accelerate simulated time, and also events that decay very rapidly \(lightning\) or quite slowly \(diseases\) given the ability to control the decay time of the rendered graphic. Although most examples are of time series events on the Earth, the events can be on any of the supported Solar System bodies, or simply the Sky.
[WWT Layer Control API Guide]: https://docs.worldwidetelescope.org/lcapi-guide/1/
There are a number of constraints on the use of the LCAPI that should be understood before commencing with the design of the tool:
* The supported spreadsheet formats are comma or tab delimited files.
* The LCAPI is a feature of the Windows Client version of WorldWide Telescope, not the Web Client.
* The LCAPI provides event, image or model data specifically to the Layer Manager, not to any other component of WorldWide Telescope.
If youre just interested in the documentation itself, you should go to that
website. If youre interested in *contributing* to this documentation, youve
come to the right place!
## Quick Start for the Initiated
**What it can do:**In addition to using the layer manager interactively, you can use scripting and programming languages to send commands and data into WWT from your own code driving the visualization of data in WWT. You can write code that can read data from a database, or create it mathematically and send it to WWT to render. In addition almost all of WWT functionality can be controller through the LCAPI. This means you can create control mechanisms for automated or interactive control of WWT through your own hardware and software.  A good example of the use of the LCAPI is the ADS All-Sky Survey as seen in WorldWide Telescope, at[ adsass.org/wwt/](http://www.adsass.org/wwt/).
The guide is a static site written in [CommonMark Markdown] and processed
with [Zola]. Zola is distributed as a single executable so it is ridiculously
[easy to install][install-zola].
**Skills Required:**You need to be familiar with the programing language or your choice and get the LCAPI documentation and learn how to use HTTP request to send and receive data from WWT. There is also a library called_Narwhal_that provides a .NET wrapper and high level programming features for those who use .NET. Any language that can call HTTP web services can control WWT, and a Python interface has already been implemented, as pyWWT, \(see [www.jzuhone.com/pywwt](http://www.jzuhone.com/pywwt)\).
This repository is themed by referencing [zola-wwtguide] as a submodule, so
upon first checkout youll have to run:
```
git submodule update --init
```
Once everything is set up, all you have to do is run
```
zola serve
```
to build the site and serve it locally for testing. The command `zola check`
will check the build and verify that outgoing links are valid. Zola has
[lots of documentation][zola-docs].
[CommonMark Markdown]: https://commonmark.org/
[Zola]: https://getzola.org/
[install-zola]: https://www.getzola.org/documentation/getting-started/installation/
[zola-wwtguide]: https://github.com/WorldWideTelescope/zola-wwtguide
[zola-docs]: https://www.getzola.org/documentation/getting-started/overview/
Merges to `master` will be published automatically using WWTs continuous
deployment infrastructure.
## Contributing
Contributions are welcome! If youre new to the project, please see the
[WWT Contributors Guide] and the [WWT Code of Conduct]. We operate with a
standard [fork-and-pull] model.
[WWT Contributors Guide]: https://worldwidetelescope.github.io/contributing/
[WWT Code of Conduct]: https://worldwidetelescope.github.io/code-of-conduct/
[fork-and-pull]: https://help.github.com/en/articles/about-collaborative-development-models
## Acknowledgments
The AAS WorldWide Telescope system is a [.NET Foundation] project managed by
the non-profit [American Astronomical Society] (AAS). Work on WWT has been
supported by the AAS, the US [National Science Foundation] (grants [1550701]
and [1642446]), the [Gordon and Betty Moore Foundation], and [Microsoft].
[.NET Foundation]: https://dotnetfoundation.org/
[American Astronomical Society]: https://aas.org/
[National Science Foundation]: https://www.nsf.gov/
[1550701]: https://www.nsf.gov/awardsearch/showAward?AWD_ID=1550701
[1642446]: https://www.nsf.gov/awardsearch/showAward?AWD_ID=1642446
[Gordon and Betty Moore Foundation]: https://www.moore.org/
[Microsoft]: https://www.microsoft.com/

17
azure-pipelines.yml Normal file
Просмотреть файл

@ -0,0 +1,17 @@
resources:
repositories:
- repository: wwtguide
type: github
name: WorldWideTelescope/zola-wwtguide
endpoint: wwtelescope
jobs:
- template: azure-build-and-publish.yml@wwtguide
parameters:
azureServiceConnectionName: 'aas@wwtadmindotnetfoundation'
storageAccountName: 'wwtwebstatic'
cdnEndpointName: 'wwtwebdocs-prod'
cdnProfileName: 'wwt-cdn-01'
cdnPubPrefix: '/lcapi-guide/1'
cdnResourceGroupName: 'wwt-web01'
pubPrefix: '_docs/lcapi-guide/1'

Просмотреть файл

@ -1,22 +0,0 @@
{
"plugins": [ "theme-api" ],
"pluginsConfig": {
"theme-api": {
"languages": [
{
"lang": "cs",
"name": "C#",
"default": true
},
{
"lang": "xml",
"name": "XML"
},
{
"lang": "cs",
"name": "C#"
}
]
}
}
}

7
config.toml Normal file
Просмотреть файл

@ -0,0 +1,7 @@
base_url = "//docs.worldwidetelescope.org/lcapi-guide/1/"
title = "WWT Layer Control API Guide"
description = "Controlling the WWT Windows application with the LCAPI."
theme = "wwtguide"
[extra]
github_base = "//github.com/WorldWideTelescope/worldwide-telescope-lcapi-guide"

27
content/_index.md Normal file
Просмотреть файл

@ -0,0 +1,27 @@
+++
title = "WWT Layer Control API Guide"
sort_by = "weight"
insert_anchor_links = "right"
+++
This document describes how to write a software program to send data to WorldWide Telescope, using the Layer Control API \(LCAPI\). For a large amount of data the program might be a tool that reads data from a spreadsheet file, and then sends the appropriate fields of the data to WorldWide Telescope in appropriately sized buffers for visualization. For a smaller amount of data the entire file could be loaded in one go, or images or 3D models could be loaded. Time series data would typically be time-and-location dependent event data such as:
* Earthquakes
* Volcanic eruptions
* Disease outbreaks
* More general social or natural events and trends
The time-series system does _not_ lend itself to data that varies either its location or has a complex intensity - such as weather systems, or forest fires - though it is possible a limited approach to this sort of data may be useful. The system does lend itself to events that occur over an extended period of time, given the ability to greatly accelerate simulated time, and also events that decay very rapidly \(lightning\) or quite slowly \(diseases\) given the ability to control the decay time of the rendered graphic. Although most examples are of time series events on the Earth, the events can be on any of the supported Solar System bodies, or simply the Sky.
There are a number of constraints on the use of the LCAPI that should be understood before commencing with the design of the tool:
* The supported spreadsheet formats are comma or tab delimited files.
* The LCAPI is a feature of the Windows Client version of WorldWide Telescope, not the Web Client.
* The LCAPI provides event, image or model data specifically to the Layer Manager, not to any other component of WorldWide Telescope.
**What it can do:**In addition to using the layer manager interactively, you can use scripting and programming languages to send commands and data into WWT from your own code driving the visualization of data in WWT. You can write code that can read data from a database, or create it mathematically and send it to WWT to render. In addition almost all of WWT functionality can be controller through the LCAPI. This means you can create control mechanisms for automated or interactive control of WWT through your own hardware and software.  A good example of the use of the LCAPI is the ADS All-Sky Survey as seen in WorldWide Telescope, at[ adsass.org/wwt/](http://www.adsass.org/wwt/).
**Skills Required:**You need to be familiar with the programing language or your choice and get the LCAPI documentation and learn how to use HTTP request to send and receive data from WWT. There is also a library called_Narwhal_that provides a .NET wrapper and high level programming features for those who use .NET. Any language that can call HTTP web services can control WWT, and a Python interface has already been implemented, as pyWWT, \(see [www.jzuhone.com/pywwt](http://www.jzuhone.com/pywwt)\).

Просмотреть файл

@ -1,4 +1,7 @@
## Design Overview
+++
title = "LCAPI Design Overview"
weight = 100
+++
The Windows client version of WorldWide Telescope listens continuously, and without any setup process, for a certain format of communication on a particular port. The format of this communication is in the form of strings, that themselves are formatted in a specific way. An application may be quite short and only need a [**load**](lcapicommands.md#load) call, or perhaps just need the **[new](lcapicommands.md#new)** and **[update](lcapicommands.md#update)** commands**.** Typically a simple application will go through the following steps, _after_ WorldWide Telescope has been started:

Просмотреть файл

@ -1,5 +1,7 @@
## LCAPI Commands
+++
title = "LCAPI Commands"
weight = 200
+++
The following commands can be used to control layers from the application. Note that command names are _not_ case-sensitive, and that the [general parameters](#general-parameters) can be included along with any other command.

Просмотреть файл

@ -1,4 +1,7 @@
## Sample Application
+++
title = "Sample LCAPI Application"
weight = 400
+++
The following sample application loads earthquake data from a CSV file, sends it in buffers of up to 100 events, and displays it as a time series in WorldWide Telescope.

Просмотреть файл

@ -1,4 +1,7 @@
## Utilities
+++
title = "LCAPI Utilities"
weight = 300
+++
The following utilities are not part of the API, but should be useful in building an application.

Просмотреть файл

@ -1,30 +0,0 @@
# Defining Methods
Methods allow you to smoothly display code examples in different languages.
{% method %}
## My first method
My first method exposes how to print a message in JavaScript and Go.
{% sample lang="js" %}
Here is how to print a message to `stdout` using JavaScript.
```js
console.log('My first method');
```
{% sample lang="go" %}
Here is how to print a message to `stdout` using Go.
```go
fmt.Println("My first method")
```
{% common %}
Whatever language you are using, the result will be the same.
```bash
$ My first method
```
{% endmethod %}

1
themes/wwtguide Submodule

@ -0,0 +1 @@
Subproject commit 8dadf0bc826c7807218216b54a847662426e971d