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

Obligation des périodes, des jours de la semaine, des jours (exclus ou inclus) dans les calendriers #58

Open
albanpeignier opened this issue Jan 23, 2024 · 2 comments
Labels
NeTEx Pour toute discussion sur le profil France dans son intégralité
Milestone

Comments

@albanpeignier
Copy link
Collaborator

Le profil NeTEx France met en avant l'utilisation des UicOperatingPeriod:

image

En revanche, le profil ne précise pas:

  • s'il est obligatoire de conserver la définition des périodes, des jours de la semaine, des jours exclus ou inclus auquels l'attibut ValidDayBits s'ajoute
  • ou si les UicOperatingPeriods peuvent être utilisés seuls.

Exemple avec description complète

<DayType id="daytype-1">
  <Name>Sample</Name>
  <properties>
    <PropertyOfDay>
      <DaysOfWeek>Tuesday Friday</DaysOfWeek>
    </PropertyOfDay>
  </properties>
</DayType>

<DayTypeAssignment id="assigment-1">
  <OperatingPeriodRef ref="period-1"/>
  <DayTypeRef ref="daytype-1"/>
</DayTypeAssignment>

<DayTypeAssignment id="assigment-2">
  <Date>2030-01-15</Date>
  <DayTypeRef ref="daytype-1"/>
  <isAvailable>true</isAvailable>
</DayTypeAssignment>

<UicOperatingPeriod id="period-1">
  <FromDate>2030-01-01T00:00:00</FromDate>
  <ToDate>2030-01-10T00:00:00</ToDate>
  <ValidDayBits>1001....</ValidDayBits>
</OperatingPeriod>

Exemple avec UicOperatingPeriod seul

<DayType id="daytype-1">
  <Name>Sample</Name>
</DayType>

<DayTypeAssignment id="assigment-1">
  <OperatingPeriodRef ref="period-1"/>
  <DayTypeRef ref="daytype-1"/>
</DayTypeAssignment>

<UicOperatingPeriod id="period-1">
  <FromDate>2030-01-01T00:00:00</FromDate>
  <ValidDayBits>1001....</ValidDayBits>
</OperatingPeriod>
@albanpeignier albanpeignier added the NeTEx Pour toute discussion sur le profil France dans son intégralité label Jan 23, 2024
@albanpeignier
Copy link
Collaborator Author

albanpeignier commented Nov 12, 2024

TL;DR Il faut préciser l'utilisation de ses UicOperatingPeriods. Car, c'est techniquement lourd à mettre en œuvre. Et sans définition claire, personne ne pourra lire ces ValidDayBits.

Nous avons (essayé) d'intégrer les UicOperatingPeriods dans nos outils.

Quand un fichier est produit, nous utilisons un mix entre description complète et UicOperatingPeriod avec un ValidDayBits (pour respecter l'obligation du profil France). Mais rien n'explique ce que doit refléter le ValidDayBits de chaque UicOperatingPeriod dans ce cas.

Pour l'heure, les ValidDayBits générés par nos outils reflètent… la période et les jours de la semaine du DayType (pas les dates exclues sur cette période, c'est techniquement plus lourd, mais possible).

<DayType id="daytype-1">
  <Name>Sample</Name>
  <properties>
    <PropertyOfDay>
      <DaysOfWeek>Tuesday Friday</DaysOfWeek>
    </PropertyOfDay>
  </properties>
</DayType>

<DayTypeAssignment id="assigment-1">
  <OperatingPeriodRef ref="period-1"/>
  <DayTypeRef ref="daytype-1"/>
</DayTypeAssignment>

<DayTypeAssignment id="assigment-2">
  <Date>2030-01-15</Date>
  <DayTypeRef ref="daytype-1"/>
  <isAvailable>true</isAvailable>
</DayTypeAssignment>

<UicOperatingPeriod id="period-1">
  <FromDate>2030-01-01T00:00:00</FromDate>
  <ToDate>2030-01-10T00:00:00</ToDate>
  <ValidDayBits>1001....</ValidDayBits> <!-- use DayType/DaysOfWeek to mask associated bits -->
</OperatingPeriod>

Quand un fichier NeTEx est lu, nos outils peuvent lire des DayTypes qui ne sont définis que par un UicOperatingPeriod et son ValidDayBits. Dans ce cas, nous avons un algorithme pour reconstituer une description "humaine" avec des périodes, jours de la semaine et dates incluses/exclues.

@ptitfred
Copy link
Contributor

String of bits (built of “0” and “1”), one for each day in the period: whether valid or not valid on the day. Normally there will be a bit for every day between start and end date. If bit is missing, assume available.

Comment est fait le padding si la chaine est trop courte ? J'imagine par la droite ?

(Par ailleurs ce tableau n'est pas traduit en français.)

@TuThoThai TuThoThai added this to the v2.4 milestone Nov 26, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
NeTEx Pour toute discussion sur le profil France dans son intégralité
Projects
None yet
Development

No branches or pull requests

3 participants