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

Update README and other documentation #711

Merged
merged 59 commits into from
Aug 14, 2023
Merged
Show file tree
Hide file tree
Changes from 58 commits
Commits
Show all changes
59 commits
Select commit Hold shift + click to select a range
c1b6089
Add NSIDC and NSF logos to README
trey-stafford Aug 7, 2023
5143fff
Sections for level of support, installation, usage, and troubleshooting
trey-stafford Aug 7, 2023
5d51c39
Link to documentation page for usage section
trey-stafford Aug 7, 2023
9aced42
Link to github issues
trey-stafford Aug 7, 2023
7caa2b7
Link to contributing section from "level of support"
trey-stafford Aug 7, 2023
7e5d4dd
remove redudant content about what's included in QGreenland
trey-stafford Aug 7, 2023
de5c6c7
Link to "What is QGreenland" page in description
trey-stafford Aug 7, 2023
348b32f
Tweak disclaimer text
trey-stafford Aug 7, 2023
f04a4b8
Move QGIS supported versions to `get-started` tutorial.
trey-stafford Aug 7, 2023
1b3d486
Fixup broken link
trey-stafford Aug 7, 2023
f3afcc5
Move disclaimer to page on RTD
trey-stafford Aug 7, 2023
7553ed7
docs: relative link to RTD page
trey-stafford Aug 7, 2023
12d0ab9
Fix link in video series overview
trey-stafford Aug 7, 2023
a76f27b
Link title + formatting
trey-stafford Aug 7, 2023
6354f2a
Fixups and improvements for the qgreenland beginner series tutorial
trey-stafford Aug 7, 2023
05e249f
Update QGIS docs refs from v3.16 -> v3.28
trey-stafford Aug 8, 2023
cb17c26
Update note about temporal controller
trey-stafford Aug 8, 2023
3a4efec
Remove unnecessary new lines
trey-stafford Aug 8, 2023
04a50f5
Remove user installation instructions from README
trey-stafford Aug 8, 2023
4a2f95e
Tweaks for "what is qgr" doc pageo
trey-stafford Aug 8, 2023
768a6bc
formatting
trey-stafford Aug 8, 2023
c6fca01
Merge branch 'main' into update-readme-nsidc-template
trey-stafford Aug 8, 2023
09535f4
Remove text about the future of QGreenland custom using 'modules'
trey-stafford Aug 8, 2023
75a5284
Data compatibility guide: link to documentation page
trey-stafford Aug 8, 2023
3786f58
Adding-data how-to: update text around adding new layers to qgis
trey-stafford Aug 8, 2023
872e63a
Clarify name of section about selecting for greenaland-specific data
trey-stafford Aug 9, 2023
8c17ab8
Move & update section on creating custom clipping boundary polygon
trey-stafford Aug 9, 2023
8b3ea4e
update section on adding new vector layers
trey-stafford Aug 9, 2023
364462e
Cleanup trailing whitespaces
trey-stafford Aug 9, 2023
5b708e8
Fixup references
trey-stafford Aug 9, 2023
66ed05e
Remove some contractions (e.g., `you're` -> `you are`) from docs
trey-stafford Aug 9, 2023
06855fb
Significantly simplify GPS how-to guide.
trey-stafford Aug 9, 2023
5d8f42b
Fixup heading position (swap newline)
trey-stafford Aug 9, 2023
c1a08b8
`that's` -> `that is`
trey-stafford Aug 9, 2023
51d977c
`it's` -> `it is`
trey-stafford Aug 9, 2023
18452bc
Move note about qgr project crs
trey-stafford Aug 9, 2023
e001a35
Metadata how-to: remove reference to qgreenland custom
trey-stafford Aug 9, 2023
6038fe4
Replace plugin tutorial w/ discussion page.
trey-stafford Aug 9, 2023
dcf24a3
Remove "How-tos" section from contributing discussion
trey-stafford Aug 9, 2023
27edfe8
Further updates to README, contributor docs
trey-stafford Aug 9, 2023
5a3ca42
`what's` -> `what is`
trey-stafford Aug 9, 2023
360a157
Fixup link
trey-stafford Aug 9, 2023
69351a3
Update doc/user/tutorials/video-series-overview.md
trey-stafford Aug 10, 2023
f618dbc
Update README.md
trey-stafford Aug 10, 2023
baaa5c8
Update README.md
trey-stafford Aug 10, 2023
ba7fb53
Update README.md
trey-stafford Aug 10, 2023
740b770
Update README to make repo responsibilities clear
trey-stafford Aug 10, 2023
f53e2ed
Attempt to force README logos to be same size
trey-stafford Aug 10, 2023
116b910
Move badges below title
trey-stafford Aug 10, 2023
d86d5f5
Add CODE_OF_CONDUCT
trey-stafford Aug 10, 2023
2003968
Capitalize word
trey-stafford Aug 10, 2023
5822d62
Clarify link text
trey-stafford Aug 10, 2023
ab4caa7
Fixup spelling
trey-stafford Aug 10, 2023
42559b4
! -> .
trey-stafford Aug 10, 2023
3e55c05
Replace note about downloading qgr w/ info about tutorial
trey-stafford Aug 10, 2023
c65d456
Remove Level of Support section, for now
trey-stafford Aug 14, 2023
d791b50
Tweak language about scope of users
trey-stafford Aug 14, 2023
06abc3c
Update how-to: add note about geospatial metadata
trey-stafford Aug 14, 2023
d540657
Explicit reference
trey-stafford Aug 14, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
76 changes: 76 additions & 0 deletions CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
# Contributor Covenant Code of Conduct

## Our Pledge

In the interest of fostering an open and welcoming environment, we as
contributors and maintainers pledge to making participation in our project and
our community a harassment-free experience for everyone, regardless of age, body
size, disability, ethnicity, sex characteristics, gender identity and expression,
level of experience, education, socio-economic status, nationality, personal
appearance, race, religion, or sexual identity and orientation.

## Our Standards

Examples of behavior that contributes to creating a positive environment
include:

* Using welcoming and inclusive language
* Being respectful of differing viewpoints and experiences
* Gracefully accepting constructive criticism
* Focusing on what is best for the community
* Showing empathy towards other community members

Examples of unacceptable behavior by participants include:

* The use of sexualized language or imagery and unwelcome sexual attention or
advances
* Trolling, insulting/derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or electronic
address, without explicit permission
* Other conduct which could reasonably be considered inappropriate in a
professional setting

## Our Responsibilities

Project maintainers are responsible for clarifying the standards of acceptable
behavior and are expected to take appropriate and fair corrective action in
response to any instances of unacceptable behavior.

Project maintainers have the right and responsibility to remove, edit, or
reject comments, commits, code, wiki edits, issues, and other contributions
that are not aligned to this Code of Conduct, or to ban temporarily or
permanently any contributor for other behaviors that they deem inappropriate,
threatening, offensive, or harmful.

## Scope

This Code of Conduct applies both within project spaces and in public spaces
when an individual is representing the project or its community. Examples of
representing a project or community include using an official project e-mail
address, posting via an official social media account, or acting as an appointed
representative at an online or offline event. Representation of a project may be
further defined and clarified by project maintainers.

## Enforcement

Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported by contacting the project team at [email protected]. All
complaints will be reviewed and investigated and will result in a response that
is deemed necessary and appropriate to the circumstances. The project team is
obligated to maintain confidentiality with regard to the reporter of an incident.
Further details of specific enforcement policies may be posted separately.

Project maintainers who do not follow or enforce the Code of Conduct in good
faith may face temporary or permanent repercussions as determined by other
members of the project's leadership.

## Attribution

This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html

[homepage]: https://www.contributor-covenant.org

For answers to common questions about this code of conduct, see
https://www.contributor-covenant.org/faq
120 changes: 52 additions & 68 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,19 @@
[![NSF-1928393](https://img.shields.io/badge/NSF-1928393-red.svg)](https://nsf.gov/awardsearch/showAward?AWD_ID=1928393)
[![DOI](https://zenodo.org/badge/241453043.svg)](https://zenodo.org/badge/latestdoi/241453043)
<p align="center">
<img alt="NSIDC logo" src="https://nsidc.org/themes/custom/nsidc/logo.svg" width="150" height="150" />
<img alt="NSF logo" src="https://nsidc.org/sites/default/files/images/Logo/NSF.svg" width="150" height="150" />
</p>
trey-stafford marked this conversation as resolved.
Show resolved Hide resolved

# QGreenland
[![NSF-1928393](https://img.shields.io/badge/NSF-1928393-red.svg)](https://nsf.gov/awardsearch/showAward?AWD_ID=1928393)
[![DOI](https://zenodo.org/badge/241453043.svg)](https://zenodo.org/badge/latestdoi/241453043)

![QGreenland example images](/doc/_images/qgreenland-examples.jpg)
This repository is responsible for the code and configuration for creating the
QGreenland Core zip package. To download the package and learn more about
QGreenland, visit our [our website](https://www.qgreenland.org).

[Our website](https://www.qgreenland.org) | [Documentation](https://qgreenland.readthedocs.io)
For more detailed information about using the QGreenland Core zip package and on
how to contribute to QGreenland, see our
[Documentation](https://qgreenland.readthedocs.io)

> :tada: QGreenland v3 development is well underway. We're looking for testers to
> provide feedback by **August 6, 2023**. Please see our
Expand All @@ -15,78 +23,47 @@

## A Free GIS package for Greenland
trey-stafford marked this conversation as resolved.
Show resolved Hide resolved

QGreenland is a free mapping tool to support interdisciplinary
Greenland-focused research, teaching, decision making, and collaboration.
![QGreenland example images](/doc/_images/qgreenland-examples.jpg)

Combines key datasets into a unified, all-in-one GIS analysis and visualization
environment for offline and online use.
QGreenland is a free mapping tool to support interdisciplinary Greenland-focused
research, teaching, decision making, and collaboration. It combines key datasets
into a unified, all-in-one GIS analysis and visualization environment for
offline and online use.

An international Editorial Board and Project Collaborators connects the
QGreenland Team to data and user communities.

Learn more about [What is
QGreenland?](https://qgreenland.readthedocs.io/en/latest/what_is_qgr.html)

## Disclaimer

QGreenland should not be used as a sole navigational aid while performing
remote research activities in Greenland. Always bring appropriate safety and
navigational aids (including hard-copies of topographic maps) when visiting the
field.

QGreenland is a data-viewing and analysis platform, and the QGreenland Team does
not create new data. QGreenland's layers may contain errors from the original
data providers. QGreenland makes no guarantees about the accuracy and validity
of data contained in QGreenland. Limited notes on known data issues have been
added to the 'Populated places' layer metadata. Also, some layers may not
perfectly align with each other due to unidentified georeferencing issues with
the original data. We recommend using the 'Greenland coastlines 2017' layer as
the best approximation reference layer for geolocating Greenland's coastline.

Note that some data were transformed from their native data formats,
projections, and resolutions for inclusion within QGreenland. The included
metadata (>Layer Properties >Metadata >History) contains provenance information
on any transformations. All QGreenland GeoPackages and GeoTIFFs are projected
in `EPSG:3413`.

# Usage

# Getting started
## For contributors

As of this writing, the oldest version of QGIS we support for the QGreenland release
series are:
Those wishing to utilize the `qgreenland` code to create their own QGreenland
data package should see the contributor [How to build QGreenland
Core](https://qgreenland.readthedocs.io/en/latest/contributor/how-to/run-qgreenland.html)
trey-stafford marked this conversation as resolved.
Show resolved Hide resolved
guide.

* QGreenland `1.x`: QGIS `3.16.x LTR`
* QGreenland `2.x`: QGIS `3.16.x LTR`
* QGreenland `3.x`: QGIS `3.28.x LTR`
## For users of the QGreenland Core data package
trey-stafford marked this conversation as resolved.
Show resolved Hide resolved

You can find downloads and instructions
[here](https://qgis.org/en/site/forusers/download.html).
See our [Get started with QGreenland
Core](https://qgreenland.readthedocs.io/en/latest/user/tutorials/get-started.html)
tutorial!

After installing QGIS, [download QGreenland](https://qgreenland.org/download)
and unzip it with your unzip tool of choice if you haven not already done so.
### What is inside the QGreenland Core data package zip file?

> :warning: Ensure QGreenland is _actually_ unzipped; some operating systems will only
> "explore" a zip file when you double-click it without actually extracting it to disk.
> In Windows, please right-click and select `Extract all...`.
At the root of the zip file, you will find useful files such as a
`UserGuide.pdf`, the `qgreenland.qgs` QGIS project file and scientific
discipline-specific directories containing data (GeoTIFFs and GeoPackages).

Finally double-click on (or use QGIS open) the `qgreenland.qgs` file that was just
extracted from the zip.
For more detailed information, see our documentation on the [QGreenland Core
Download
Package](https://qgreenland.readthedocs.io/en/latest/what_is_qgr.html#qgreenland-core-download-package).

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Love it



## What's inside the QGreenland Core zip package?

At the root of the zip file, you will find scientific discipline-specific directories
containing data (GeoTIFFs and GeoPackages). Additionally, the following files are
present at the package root:

* `UserGuide.pdf`: Detailed user-guide.
* `QuickStartGuide.pdf`: Guide for QGIS beginners.
* `README.html`: The README file you are currently reading.
* `CHANGELOG.html`: A summary of changes for each new QGreenland version.
* `layer_list.csv`: Comma-separated values representing the configuration of
layers in QGreenland. This includes limited layer metadata, including, but not limited
to: title, description, abstract, and citation.


# Educational resources
### Educational resources

We keep the QGreenland official website up-to-date with links to helpful
educational resources, including our own QGreenland User Guide.
Expand All @@ -95,19 +72,26 @@ educational resources, including our own QGreenland User Guide.
* [QGreenland YouTube channel](https://www.youtube.com/channel/UCjWae_Jrbognx2ju_SHBZ2A/videos)
* [QGreenland official documentation](https://qgreenland.readthedocs.io)

### Troubleshooting

See our user troubleshooting guide
[here](https://qgreenland.readthedocs.io/en/latest/user/how-to/troubleshooting.html).

# Contributing

Please see [contributing
instructions](https://qgreenland.readthedocs.io/en/latest/contributor-how-to/contribute-layers.html)
for more info. A good portion of this document contains technical instructions about
running the QGreenland pipeline, but also includes less-technical instructions for
contributing styles you have developed within QGIS. Our goal is to make it as easy as
possible for any user of QGreenland to contribute to the project, so please do not be
deterred from sharing your ideas.
See our [discusson page on
contributing](https://qgreenland.readthedocs.io/en/latest/contributor/discussion/contributing.html)
to get started!

**If all else fails, please [email us](mailto:[email protected])!**
Contributor documentation contains technical instructions about running the
QGreenland pipeline code, but we also strive to describe everything clearly.
Our goal is to make it as easy as possible for any user of QGreenland to
contribute to the project, so please do not be deterred from sharing your ideas.

If you have an idea for a new feature or have a bug to report, please submit an
[Issue](https://github.com/nsidc/qgreenland/issues).

**If all else fails, please [email us](mailto:[email protected])!**

# Acknowledgements

Expand Down
Binary file removed doc/_images/add_to_project_plugin.jpg
Binary file not shown.
12 changes: 8 additions & 4 deletions doc/contributor/discussion/contributing.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ Currently, layer styles can be contributed without any programming knowledge by
designing the style in QGIS, saving it as a `.qml`, and committing it to the
`qgreenland/ancillary/styles` directory.

You can contribute to this project even if you don't have write access by
You can contribute to this project even if you do not have write access by
forking, making your change, making all CI checks pass, then opening a Pull
Request. Learn more:

Expand All @@ -41,6 +41,10 @@ Request. Learn more:

### How-tos

Visit [our
documentation](https://qgreenland.readthedocs.io/en/latest/contributor-how-to/)
for contributor-focused how-tos!
See our [Contributor "How-to" guides
](/contributor/how-to/index.rst) for
how-tos on topics such as:

* [How to build QGreenland Core](/contributor/how-to/run-qgreenland.md)
* [How to contributing new layers](/contributor/how-to/contribute-layers.md)
* [How to contribute styles](/contributor/how-to/contribute-styles.md)
8 changes: 4 additions & 4 deletions doc/contributor/discussion/pydantic-and-mypy.md

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You're digging deep for these contractions! Did you grep for all the apostrophes? 😁

Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,10 @@ While Pydantic uses type annotations to determine runtime validation behavior, i
effectively overrides your annotation with `Any` (try `reveal_type(MyModel)`!). This is
because Pydantic needs to be able to convert compatible values. [Pydantic's mypy
plugin](https://docs.pydantic.dev/1.10/mypy_plugin/#plugin-settings), which we use,
offers an `init_typed` setting, which we don't use, to "correctly" annotate the
offers an `init_typed` setting, which we do not use, to "correctly" annotate the
`__init__` method of models, with the downside that Mypy throws errors when you take
advantage of Pydantic's type conversion behavior.

For this reason, it's expected that QGreenland config files would **pass** type checking
when instantiating Pydantic models with incorrect field types. These would instead
**fail** runtime validation.
For this reason, it is expected that QGreenland config files would **pass** type
checking when instantiating Pydantic models with incorrect field types. These
would instead **fail** runtime validation.
4 changes: 2 additions & 2 deletions doc/contributor/how-to/contribute-layers.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
# How to contribute new layers

```{note}
We can't promise that your layer will be added, so please [open an
We cannot promise that your layer will be added, so please [open an
issue](https://github.com/nsidc/qgreenland/issues/new/choose) and start a
discussion before developing a processing pipeline for a new layer.
```

It's recommended to use the CLI to create a dataset and/or layer template to
It is recommended to use the CLI to create a dataset and/or layer template to
help you along. In the below commands, replace filenames, paths, and ids with
real ones. NOTE: When generating templates, but _not_ when fetching, you can
use `./scripts/experimental/local_cli.sh config-template <dataset|layer>` in
Expand Down
6 changes: 3 additions & 3 deletions doc/contributor/how-to/contribute-styles.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ following process:

![Save style](/_images/save_style.png)

* At this point, if you're uncomfortable with Git and GitHub, you can email us
* At this point, if you are uncomfortable with Git and GitHub, you can email us
your style file at [email protected]. Otherwise, continue on...
* Save the style to `qgreenland/assets/styles/<name>.qml` directory of this
repository or your fork. Keep in mind that styles can be shared between
Expand All @@ -32,7 +32,7 @@ following process:
e.g. `Font "Helvetica" font not available on system`.

See [this GitHub issue](https://github.com/nsidc/qgreenland/issues/515) for more. For
example it's possible your style `qml` file contains `fontFamily="Sans Serif"` and
that's being automatically converted by PyQGIS to a value like `Helvetica` (a
example it is possible your style `qml` file contains `fontFamily="Sans Serif"` and
that is being automatically converted by PyQGIS to a value like `Helvetica` (a
proprietary font) when writing the final project file. Try `fontFamily="Open Sans"`
instead!
2 changes: 1 addition & 1 deletion doc/contributor/how-to/release-new-version.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ Versions should be in one of the following forms:
* `vX.Y.Z`: A final release, e.g. `v1.2.3`.

```{caution}
When using `bumpversion build`, ensure you've already used `bumpversion
When using `bumpversion build`, ensure you have already used `bumpversion
prerelease`. Running `bumpversion build` from a final release version number
can result in an incorrect patch number, e.g. `v1.2.304`.
```
Expand Down
13 changes: 7 additions & 6 deletions doc/contributor/how-to/write-documentation.md
Original file line number Diff line number Diff line change
Expand Up @@ -48,10 +48,11 @@ Our PDF doc is intended to be user-focused, but our HTML docs serve users and
contributors (i.e. PDF docs are a subset of HTML docs). Most of the docs end up in both
formats, so we want to use the same content to create both.

Sphinx offers the `.. only::` directive for conditional content, but it does not work as
one might intuitively expect. Specifically, it isn't capable of creating conditional or
filtered `toctrees`. Because of this insufficiency, we're employing two nonstandard
methods in `doc/index.rst` to deselect items from PDF docs:
Sphinx offers the `.. only::` directive for conditional content, but it does not
work as one might intuitively expect. Specifically, it isn't capable of creating
conditional or filtered `toctrees`. Because of this insufficiency, we are
employing two nonstandard methods in `doc/index.rst` to deselect items from PDF
docs:

* The package
[sphinx-selective-exclude](https://pypi.org/project/sphinx-selective-exclude/)
Expand Down Expand Up @@ -99,7 +100,7 @@ the Docs.
## Contributing to documentation

```{attention}
You'll need to have TeX Live installed if you want to render PDF documentation. On
You will need to have TeX Live installed if you want to render PDF documentation. On
Debian-based systems, you can install it with `sudo apt install texlive-latex-extra`.

We attempted to include this dependency via the `conda` package `texlive-core`, but
Expand All @@ -114,7 +115,7 @@ it.
material](https://diataxis.fr/reference/), or a [Discussion
topic](https://diataxis.fr/explanation/)? Ensure your document is in the
correct directory and written for the correct audience.
* Write your documentation in Markdown, unless you're writing a page that must
* Write your documentation in Markdown, unless you are writing a page that must
be majority reStructuredText, such as an `index.rst` for a new group of pages.
* Ensure your documentation page starts with a top-level header. This is the
title of the page.
Expand Down
8 changes: 4 additions & 4 deletions doc/contributor/reference/architecture/storage.md
Original file line number Diff line number Diff line change
Expand Up @@ -55,13 +55,13 @@ data/private-archive
```

While this project prefers to only include publicly-archived and
machine-accessible data, we do have some privately-archived data that we've
machine-accessible data, we do have some privately-archived data that we have
sourced by e-mailing scientists or manually interacting with machine-unfriendly
systems. These datasets have an `access_instructions` attribute in
configuration that describes how the data was acquired.
systems. These datasets have an `access_instructions` attribute in configuration
that describes how the data was acquired.

May be read-only.

NOTE: The CLI's `run` command features an argument `--exclude-manual-assets`
flag which will exclude any layers that depend on privately-archived data. It's
flag which will exclude any layers that depend on privately-archived data. It is
recommended to use this flag as a QGreenland contributor testing their changes.
21 changes: 21 additions & 0 deletions doc/disclaimer.md

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💯 I like extracting independent things like this to their own files.

Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# Disclaimer

QGreenland should not be used as a sole navigational aid while performing remote
research activities in Greenland or elsewhere. Always bring appropriate safety
and navigational aids (including hard-copies of topographic maps) when visiting
the field.

QGreenland is a data-viewing and analysis platform, and the QGreenland Team does
not create new data. QGreenland's layers may contain errors from the original
data providers. QGreenland makes no guarantees about the accuracy and validity
of data contained in QGreenland. Limited notes on known data issues have been
added to the 'Populated places' layer metadata. Also, some layers may not
perfectly align with each other due to unidentified georeferencing issues with
the original data. We recommend using the 'Greenland coastlines 2017' layer as
the best approximation reference layer for geolocating Greenland's coastline.

Note that some data were transformed from their native data formats,
projections, and resolutions for inclusion within QGreenland. The included
metadata (>Layer Properties >Metadata >History) contains provenance information
on any transformations. All QGreenland GeoPackages and GeoTIFFs are projected
in `EPSG:3413`.
Loading