Commit aaf7852d authored by root's avatar root

Upload del progetto

parent 29d4cd8a

Too many changes to show.

To preserve performance only 1000 of 1000+ files are displayed.

This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This source diff could not be displayed because it is too large. You can view the blob instead.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
<?xml version="1.0" encoding="UTF-8"?>
<!-- edited with XMLSpy v2016 (x64) (http://www.altova.com) by ESA-ESAC (ESA-ESAC) -->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://soc.solarorbiter.org/efecs" targetNamespace="http://soc.solarorbiter.org/efecs" elementFormDefault="qualified">
<xs:include schemaLocation="ComponentEFECSTypes.xsd"/>
<xs:element name="eventfile">
<xs:complexType>
<xs:sequence>
<!-- Header -->
<xs:element name="header">
<xs:complexType>
<xs:attribute name="gen_time" type="DOY_UTC_Time" use="required"/>
<xs:attribute name="validity_start" type="DOY_UTC_Time" use="required"/>
<xs:attribute name="validity_end" type="DOY_UTC_Time" use="required"/>
<xs:attribute name="spacecraft" type="xs:string" use="required" fixed="Solar Orbiter"/>
<xs:attribute name="format_version" type="xs:positiveInteger" use="required" fixed="1"/>
<xs:attribute name="icd_version" type="xs:string" use="required" fixed="v1_2"/>
</xs:complexType>
</xs:element>
<!-- Content - via type that references child schema -->
<xs:element name="events" type="eventSequenceEFECS"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<!-- Types -->
<xs:complexType name="eventSequenceEFECS">
<xs:choice maxOccurs="unbounded">
<xs:group ref="efecs_event_elements"/>
</xs:choice>
</xs:complexType>
</xs:schema>
<?xml version="1.0" encoding="UTF-8"?>
<!-- edited with XMLSpy v2016 (x64) (http://www.altova.com) by ESA-ESAC (ESA-ESAC) -->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://soc.solarorbiter.org/efecs" targetNamespace="http://soc.solarorbiter.org/efecs" elementFormDefault="qualified">
<xs:include schemaLocation="ComponentEFECSTypes.xsd"/>
<xs:element name="eventfile">
<xs:complexType>
<xs:sequence>
<!-- Header -->
<xs:element name="header">
<xs:complexType>
<xs:attribute name="gen_time" type="DOY_UTC_Time" use="required"/>
<xs:attribute name="validity_start" type="DOY_UTC_Time" use="required"/>
<xs:attribute name="validity_end" type="DOY_UTC_Time" use="required"/>
<xs:attribute name="spacecraft" type="xs:string" use="required" fixed="Solar Orbiter"/>
<xs:attribute name="format_version" type="xs:positiveInteger" use="required" fixed="1"/>
<xs:attribute name="icd_version" type="xs:string" use="required" fixed="v2_0"/>
</xs:complexType>
</xs:element>
<!-- Content - via type that references child schema -->
<xs:element name="events" type="eventSequenceEFECS"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<!-- Types -->
<xs:simpleType name="stationType">
<xs:restriction base="xs:string">
<xs:enumeration value="NNO"/>
<xs:enumeration value="CEB"/>
<xs:enumeration value="MLG"/>
</xs:restriction>
</xs:simpleType>
<xs:complexType name="eventSequenceEFECS">
<xs:choice maxOccurs="unbounded">
<xs:group ref="efecs_event_elements"/>
</xs:choice>
</xs:complexType>
</xs:schema>
xmllint --schema EFECS_schema.xsd EFECS_M07_V04.xml > /dev/null
_EFECS SOWG-10 RELEASE NOTE_
1) This example file is built from
- the LTP plan of the planning exercise of SOWG 10, with subsequent SOC tidying up.
- it is expected to be used as the basis of the first E2E test forseen to occur first half 2018.
It corresponds to the EFECS-ICD v1_2. This version of the ICD introduces the IS_COORD_BURST event.
2) The span of this planning period is first-half of 2020, of Feb 2019 trajectory, which is within the Cruise Phase. This has strong downlink (for CP), and goes more marginal towards the end. The subsequent cruise phase planning period would have much worse downlink for example.
3) Since it covers cruise phase there is no usage of TAC present
4) Passes follow the CP baseline of pass every third day, with daily passes during RSCWs.
5) EMC Mandatory Quiet Windows are inserted with
- 1hr per day during RSCWs
- 4h per day outside RSCWs
Normally EMC windows approach would be discussed within the planning meeting. On this occasion the SOC have organised it after the meeting.
6) Filenaming:
- We have assigned LTP cycle number 3 to this period (seen in the filename) on the assumption that the six-month LTP cycle numbering starts in cruise (for the use of the IS-instruments).
- We use a non-flight alphabetical character in the version field ("0a" in this example file) to indicate a ground test file, and to avoid that this particular filename can recur in-flight.
\ No newline at end of file
from datetime import datetime
from lxml import etree
format_des_dates = '%Y-%jT%H:%M:%SZ'
ef = etree.parse("EFECS_M07_V04.xml")
print(ef)
old_stp = None
for stp in ef.xpath("/eventfile/events/STP_BOUND"):
t = stp.get("time")
d = stp.get("duration")
if old_stp != None:
new_duration = datetime.strptime(t, format_des_dates) - datetime.strptime(old_stp.get("time"), format_des_dates)
# convert new_duration datetime to second
new_duration_sec = 86400 * new_duration.days + new_duration.seconds
old_stp.set('duration', str(new_duration_sec))
old_stp = stp
# print(stp.get("o_count"))
out = open("EFECS_M07_V04.xml_mod", "w")
out.write(etree.tostring(ef, pretty_print=True))
out.close()
_EFECS first example file RELEASE NOTE_
1) This example file is built from
- the LTP plan of the planning exercise of SOWG 8,
and correspond to the EFECS-ICD v0_6. Various changes . As such change-bars are shown across all these recent updates. The applicable schema has been bundled together on the same page as the example files (protects the link with this version schema, against future changes).
2) The span of this planning period is first-half of 2022, of 2018 option-E trajectory, which in begins with very strong downlink, and goes more marginal towards the end.
3) No usage of TAC is included in the file
4) Likely a dedicated WOL event would be needed prior to the MAG calibration roll. This is not included.
5) As noted in ICD, does not contain Heat-shield door operations, although ultimately real products will need to contain these.
6) In the example product there are some POINT_ events that have been allowed to extend through these other events (like WOLs), without segmentation at the event. TBC whether this is allowed in practise.
7) There is a METIS RSW_EXT prior to RSW-2, but it's questionable whether we could allow METIS to operate so close to perihelion, without also having POINT_CENTRE events with METIS prime boresight (and METIS compatibility) explicitly flagged.
8) EMC windows are present, based on the follwoing approach.
- One hour Mandatory Quiet window per-day inside of RSWs
- All time not explicitly noise is Mandatory Quiet outside of RSWs
One known issue is that following the end of an RSW (and at the absolute beginning of the EFECS), a MAND_QUIET should begin immediately (until the next PREF_NOISY). At the moment MAND_QUIETs dont start until the end of a PREF_NOISY triggers the insertion.
9) Normally the TMCs would be generated after the EFECS for the corresponding period. For these first example files TMCs have been generated prior to the EFECS. Thus there could be minor discrepancies for RS-instruments wrt when TMC flexibility closes versus the RS_EXT windows of the EFECS.
10) Filenaming:
- We have assigned LTP cycle number 7 to this period (seen in the filename) on the assumption that the six-month LTP cycle numbering starts in cruise (for the use of the IS-instruments).
- We use a non-flight alphabetical character in the version field ("0a" in this example file) to indicate a ground test file, and to avoid that this particular filename can recur in-flight.
from django.contrib import admin
from .models import IOR, SequenceSlot
@admin.register(IOR)
class IORAdmin(admin.ModelAdmin):
list_display = ['name', 'id', 'author', 'start_time', 'end_time', 'submitted']
readonly_fields = ['id','created', 'start_time', 'end_time']
list_filter = ['author']
def name(self, obj):
return str(obj)
@admin.register(SequenceSlot)
class SequenceSlotAdmin(admin.ModelAdmin):
model = SequenceSlot
list_display = ['IOR', 'slot_number', 'maximum_telecommands', 'start_time', 'end_time']
list_filter = [('start_time', admin.DateFieldListFilter)]
from __future__ import unicode_literals
from django.apps import AppConfig
class IorEditorConfig(AppConfig):
name = 'IOR_editor'
from django.forms import fields
from django.forms import forms
from django.forms import models
from django.forms import widgets
from IOR_editor.models import IOR
from timeline_editor.models import Timeline
__all__ = ['IORForm', 'IORRejectForm', 'IORSelectionForm', 'IORListFilterForm']
class IORForm(models.ModelForm):
timeline = models.ModelChoiceField(queryset=Timeline.objects.all())