Merge pull request #1 from railtoolkit/dev-martin

Dev martin
development
Max Kannenberg 2022-04-20 15:10:07 +02:00 committed by GitHub
commit 5d77fa97f1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 293 additions and 110 deletions

159
CHANGELOG.md Normal file
View File

@ -0,0 +1,159 @@
# Changelog
All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
Categories: Added, Changed, Deprecated, Removed, Fixed, and Security.
## [Unreleased]
## Version [0.8] 2022-01-20
### Changed
Refactor the modular structure:
* Divide TrainRun into TrainRunCalc with the main functions and Import for importing data from yaml files
* Extract the modules Export and AdditionalOutput from TrainRunCalc
* Divide the module Operationsmodes and add its functions to TrainRunCalc and EnergySaving
* Add the remaining functions of the module types to EnergySaving
* Divide the module MovingPhases into Behavior and DrivingDynamics
* Rename the module Preparation to Characteristics
## Version [0.7] 2022-01-14
### Changed
Refactor all mutable structs as a Dictionaries:
* Refactor the mutable struct EnergySavingModification from types.jl as a Dictionary in OperationsModes.jl
* Refactor the mutable struct CharacteristicSection from types.jl as a Dictionary in Preparation.jl
* Refactor the mutable struct BehaviorSection from types.jl as a Dictionary in MovingPhases.jl
* Refactor the mutable struct DataPoint from types.jl as a Dictionary in MovingPhases.jl
* Remove behavior section "cruisingAfterCoasting"
* Rename some variables
## Version [0.6.2] 2021-12-17
### Added
Add function addStandstill! for creating the BehaviorSection standstill:
* Add function addStandstill! to MovinPhases.jl
* Use function addStandstill! in OperationModes.jl
* Rename the BehaviorSection standStill to standstill
### Fixed
* Fix: Rename addStartingPhase! to addBreakFreePhase!
## Version [0.6.1]
### Added
Add an attribute to DataPoint to record the corresponding driving behavior
* Add the attribute behavior to Datapoint in types.jl
* Attach the corresponding behavior to data points in MovingPhases.jl
* Attach the behavior "standStill" to the last data point of the driving course in OperationModes.jl
### Changed
* Rework Output.jl for outputting the data points' behavior
## Version [0.6]
### Changed
Refactor some of the mutable structs from types.jl as Dictionaries
* Remove the mutable structs Train, Path, PathSection, Settings and MovingSection
* Create Dictionaries for train, path an settings in Input.jl
* Create a Dictionary for the whole moving section in Preperation.jl and a function for copying the moving section in OperationModes.jl
* Change the type of existing Dictionary keys from String to Symbol
## Version [0.5.3]
### Changed
Rename variables in every .jl an .yaml file
## Version [0.5.2]
Merge fixing branches
## Version [0.5.1]
### Changed
Rename the real world path file
## Version [0.5]
### Changed
Refactor modules for diminishing run and tractive effort velocity pairs
* Add the seperate moving phase "diminishing run" for steep ascents where a train runs with maximum tractive effort while the driving resistances are even higher
* Refactor tractiveEffortArray to tractiveEffortVelocityPairs
* Rename file path and folder path to directory
## Version [0.4.1]
### Changed
Rename waypoints
* rename "waypoints" to "dataPoints" and "Waypoint" to "DataPoint"
## Version [0.4]
### Changed
Refactor and fix modules EnergySaving, OperationModes and MovingPhases
* add the general used level of accuracy from v0.3 to EnergySaving and OperationModes
* fix OperationModes and MovingPhases for steep ascents where a train runs with maximum tractive effort while the driving resistances are even higher
## Version [0.3]
### Changed
Refactor module MovingPhases
* extract repeatedly occuring code lines and create smaller functions (e.g. the function moveAStep)
* integrate a new approach for calculating the waypoints near intersections (e.g. including an editable level of accuracy)
## Version [0.2]
### Changed
Modules and variables were renamed.
## Version [0.1] 2021-02-19
Proof of concept and master thesis submission.
[Unreleased]: https://github.com/railtoolkit/TrainRun.jl/compare/v0.8...master
[0.8]: https://github.com/railtoolkit/TrainRun.jl/compare/v0.7...v0.8
[0.7]: https://github.com/railtoolkit/TrainRun.jl/compare/v0.6.2...v0.7
[0.6.2]: https://github.com/railtoolkit/TrainRun.jl/compare/v0.6.1...v0.6.2
[0.6.1]: https://github.com/railtoolkit/TrainRun.jl/compare/v0.6...v0.6.1
[0.6]: https://github.com/railtoolkit/TrainRun.jl/compare/v0.5.3...v0.6
[0.5.3]: https://github.com/railtoolkit/TrainRun.jl/compare/v0.5.2...v0.5.3
[0.5.2]: https://github.com/railtoolkit/TrainRun.jl/compare/v0.5.1...v0.5.2
[0.5.1]: https://github.com/railtoolkit/TrainRun.jl/compare/v0.5...v0.5.1
[0.5]: https://github.com/railtoolkit/TrainRun.jl/compare/v0.4.1...v0.5
[0.4.1]: https://github.com/railtoolkit/TrainRun.jl/compare/v0.4...v0.4.1
[0.4]: https://github.com/railtoolkit/TrainRun.jl/compare/v0.3...v0.4
[0.3]: https://github.com/railtoolkit/TrainRun.jl/compare/v0.2...v0.3
[0.2]: https://github.com/railtoolkit/TrainRun.jl/compare/v0.1...v0.2
[0.1]: https://github.com/railtoolkit/TrainRun.jl/releases/tag/v0.1

40
CITATION.cff Normal file
View File

@ -0,0 +1,40 @@
# YAML 1.2
# This CITATION.cff file was generated with cffinit.
# Visit https://bit.ly/cffinit to generate yours today!
---
cff-version: 1.2.0
title: TrainRun.jl
message: 'If you use this software, please cite it using these metadata.'
type: software
authors:
- given-names: Max
family-names: Kannenberg
affiliation: TU Braunschweig
- given-names: Martin
family-names: Scheidt
email: m.scheidt@tu-bs.de
orcid: 'https://orcid.org/0000-0002-9384-8945'
affiliation: TU Braunschweig
identifiers:
- type: doi
value: 10.5281/zenodo.6448563
description: 'Collection of archived snapshots of all versions of the library'
- type: doi
value: 10.5281/zenodo.6448564
description: Current version
url: 'https://www.railtoolkit.org/projects/TrainRun.jl/'
repository: 'https://github.com/railtoolkit/TrainRun.jl'
abstract: >-
TrainRun.jl is a step towards open science and open data in railway engineering.
Its modular design offers the possibility to serve as a basis for future
optimization and development. TrainRun.jl is suitable for qualitative
calculations to compare different trains, and it is publicly available, and we
invite others to collaborate.
keywords:
- railway
- running time
- driving dynamics
- julia language
license: ISC
version: v0.8
date-released: 2022-01-20

74
CODE_OF_CONDUCT.md Normal file
View File

@ -0,0 +1,74 @@
# 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, gender identity and expression, level of experience,
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 [INSERT EMAIL ADDRESS]. 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 [http://contributor-covenant.org/version/1/4][version]
[homepage]: http://contributor-covenant.org
[version]: http://contributor-covenant.org/version/1/4/

11
CONTRIBUTING.md Normal file
View File

@ -0,0 +1,11 @@
# Contributing
When contributing to this repository, please first discuss the change you wish to make via issue,
email, or any other method with the owners of this repository before making a change.
Please note we have a code of conduct, please follow it in all your interactions with the project.
# Pull Request Process
* add your changes to the CHANGELOG.md under [Unreleased]
* TODO!

117
README.md
View File

@ -1,5 +1,13 @@
# TrainRun
[![License: ISC](https://img.shields.io/badge/license-ISC-green.svg)](https://opensource.org/licenses/ISC) [![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.6448563.svg)](https://doi.org/10.5281/zenodo.6448563)
------------
# About
TrainRun.jl is a step towards open science and open data in railway engineering. Its modular design offers the possibility to serve as a basis for future optimization and development. TrainRun.jl is suitable for qualitative calculations to compare different trains, and it is publicly available, and we invite others to collaborate.
------------
# Installation
@ -28,115 +36,6 @@ settings_directory = "data/settings.yaml"
train_run = calculateDrivingDynamics(train, running_path, settings)
```
------------
# History
## Version 0.8
Refactor the modular structure
- Divide TrainRun into TrainRunCalc with the main functions and Import for importing data from yaml files
- Extract the modules Export and AdditionalOutput from TrainRunCalc
- Divide the module Operationsmodes and add its functions to TrainRunCalc and EnergySaving
- Add the remaining functions of the module types to EnergySaving
- Divide the module MovingPhases into Behavior and DrivingDynamics
- Rename the module Preparation to Characteristics
## Version 0.7
Refactor all mutable structs as a Dictionaries
- Refactor the mutable struct EnergySavingModification from types.jl as a Dictionary in OperationsModes.jl
- Refactor the mutable struct CharacteristicSection from types.jl as a Dictionary in Preparation.jl
- Refactor the mutable struct BehaviorSection from types.jl as a Dictionary in MovingPhases.jl
- Refactor the mutable struct DataPoint from types.jl as a Dictionary in MovingPhases.jl
- Remove behavior section "cruisingAfterCoasting"
- Rename some variables
## Version 0.6.2
Add function addStandstill! for creating the BehaviorSection standstill
- Add function addStandstill! to MovinPhases.jl
- Use function addStandstill! in OperationModes.jl
- Rename the BehaviorSection standStill to standstill
- Fix: Rename addStartingPhase! to addBreakFreePhase!
## Version 0.6.1
Add an attribute to DataPoint to record the corresponding driving behavior
- Add the attribute behavior to Datapoint in types.jl
- Attach the corresponding behavior to data points in MovingPhases.jl
- Attach the behavior "standStill" to the last data point of the driving course in OperationModes.jl
- Rework Output.jl for outputting the data points' behavior
## Version 0.6
Refactor some of the mutable structs from types.jl as Dictionaries
- Remove the mutable structs Train, Path, PathSection, Settings and MovingSection
- Create Dictionaries for train, path an settings in Input.jl
- Create a Dictionary for the whole moving section in Preperation.jl and a function for copying the moving section in OperationModes.jl
- Change the type of existing Dictionary keys from String to Symbol
## Version 0.5.3
Rename variables in every .jl an .yaml file
## Version 0.5.2
Merge fixing branches
## Version 0.5.1
Rename the real world path file
## Version 0.5
Refactor modules for diminishing run and tractive effort velocity pairs
- Add the seperate moving phase "diminishing run" for steep ascents where a train runs with maximum tractive effort while the driving resistances are even higher
- Refactor tractiveEffortArray to tractiveEffortVelocityPairs
- Rename file path and folder path to directory
## Version 0.4.1
Rename waypoints
- rename "waypoints" to "dataPoints" and "Waypoint" to "DataPoint"
## Version 0.4
Refactor and fix modules EnergySaving, OperationModes and MovingPhases
- add the general used level of accuracy from v0.3 to EnergySaving and OperationModes
- fix OperationModes and MovingPhases for steep ascents where a train runs with maximum tractive effort while the driving resistances are even higher
## Version 0.3
Refactor module MovingPhases
- extract repeatedly occuring code lines and create smaller functions (e.g. the function moveAStep)
- integrate a new approach for calculating the waypoints near intersections (e.g. including an editable level of accuracy)
## Version 0.2
Modules and variables were renamed.
## Version 0.1
Proof of concept and master thesis submission.
------------

View File

View File

@ -14,7 +14,7 @@ module DrivingDynamics
## author = {Brünger, Olaf and Dahlhaus, Elias},
## year = {2014},
## title = {Running Time Estimation},
## pages = {?--?},
## pages = {65--90},
## booktitle = {Railway Timetabling \& Operations.},
## editora = {Hansen, Ingo A.},
## editorb = {Pachl, Jörn},