Difference between revisions of "TruxtonLocation"
(→Sample) |
|||
| Line 2: | Line 2: | ||
=Attributes and Methods= | =Attributes and Methods= | ||
| − | ==altitude== | + | ==altitude: float== |
The altitude in meters. | The altitude in meters. | ||
| − | ==<code>fileid</code>== | + | ==<code>fileid: str</code>== |
The [https://en.wikipedia.org/wiki/Universally_unique_identifier GUID] of the file this location came from. | The [https://en.wikipedia.org/wiki/Universally_unique_identifier GUID] of the file this location came from. | ||
This corresponds to the <code>[FileID]</code> column of the <code><nowiki>[</nowiki>[[Location Table|Location]]<nowiki>]</nowiki></code> table. | This corresponds to the <code>[FileID]</code> column of the <code><nowiki>[</nowiki>[[Location Table|Location]]<nowiki>]</nowiki></code> table. | ||
| − | ==<code>id</code>== | + | ==<code>id: str</code>== |
This is the [https://en.wikipedia.org/wiki/Universally_unique_identifier GUID] of the record. | This is the [https://en.wikipedia.org/wiki/Universally_unique_identifier GUID] of the record. | ||
It becomes non-zero after <code>save()</code> has been called. | It becomes non-zero after <code>save()</code> has been called. | ||
This corresponds to the <code>[ID]</code> column of the <code><nowiki>[</nowiki>[[Location Table|Location]]<nowiki>]</nowiki></code> table. | This corresponds to the <code>[ID]</code> column of the <code><nowiki>[</nowiki>[[Location Table|Location]]<nowiki>]</nowiki></code> table. | ||
| − | ==<code>label</code>== | + | ==<code>label: str</code>== |
The short label for this location. | The short label for this location. | ||
This corresponds to the <code>[Label]</code> column of the <code><nowiki>[</nowiki>[[Location Table|Location]]<nowiki>]</nowiki></code> table. | This corresponds to the <code>[Label]</code> column of the <code><nowiki>[</nowiki>[[Location Table|Location]]<nowiki>]</nowiki></code> table. | ||
| − | ==<code>latitude</code>== | + | ==<code>latitude: float</code>== |
The [https://en.wikipedia.org/wiki/Latitude latitude] portion of the geographic coordinate using the [https://en.wikipedia.org/wiki/World_Geodetic_System#WGS84 WGS84] ellipsoid. | The [https://en.wikipedia.org/wiki/Latitude latitude] portion of the geographic coordinate using the [https://en.wikipedia.org/wiki/World_Geodetic_System#WGS84 WGS84] ellipsoid. | ||
This corresponds to the <code>[Latitude]</code> column of the <code><nowiki>[</nowiki>[[Location Table|Location]]<nowiki>]</nowiki></code> table. | This corresponds to the <code>[Latitude]</code> column of the <code><nowiki>[</nowiki>[[Location Table|Location]]<nowiki>]</nowiki></code> table. | ||
| − | ==<code>longitude</code>== | + | ==<code>longitude: float</code>== |
The [https://en.wikipedia.org/wiki/Longitude longitude] portion of the geographic coordinate using the [https://en.wikipedia.org/wiki/World_Geodetic_System#WGS84 WGS84] ellipsoid. | The [https://en.wikipedia.org/wiki/Longitude longitude] portion of the geographic coordinate using the [https://en.wikipedia.org/wiki/World_Geodetic_System#WGS84 WGS84] ellipsoid. | ||
Many thanks go to [https://en.wikipedia.org/wiki/John_Harrison John Harrison] for his work. | Many thanks go to [https://en.wikipedia.org/wiki/John_Harrison John Harrison] for his work. | ||
This corresponds to the <code>[Longitude]</code> column of the <code><nowiki>[</nowiki>[[Location Table|Location]]<nowiki>]</nowiki></code> table. | This corresponds to the <code>[Longitude]</code> column of the <code><nowiki>[</nowiki>[[Location Table|Location]]<nowiki>]</nowiki></code> table. | ||
| − | ==<code>mediaid</code>== | + | ==<code>mediaid: str</code>== |
This is the [https://en.wikipedia.org/wiki/Universally_unique_identifier GUID] of the media this location came from. | This is the [https://en.wikipedia.org/wiki/Universally_unique_identifier GUID] of the media this location came from. | ||
This corresponds to the <code>[MediaID]</code> column of the <code><nowiki>[</nowiki>[[Location Table|Location]]<nowiki>]</nowiki></code> table. | This corresponds to the <code>[MediaID]</code> column of the <code><nowiki>[</nowiki>[[Location Table|Location]]<nowiki>]</nowiki></code> table. | ||
| − | ==<code>save()</code>== | + | ==<code>save() -> bool</code>== |
This will commit the information to the <code><nowiki>[</nowiki>[[Location Table|Location]]<nowiki>]</nowiki></code> table. | This will commit the information to the <code><nowiki>[</nowiki>[[Location Table|Location]]<nowiki>]</nowiki></code> table. | ||
It will return [https://docs.python.org/3/library/constants.html#True True] if the record was saved to the database, [https://docs.python.org/3/library/constants.html#False False] if there was an error. | It will return [https://docs.python.org/3/library/constants.html#True True] if the record was saved to the database, [https://docs.python.org/3/library/constants.html#False False] if there was an error. | ||
| − | ==<code>tag(tag, reason, origin)</code>== | + | ==<code>tag(tag: str, reason: str, origin: int) -> bool</code>== |
This creates a tag associated with this location in Truxton. | This creates a tag associated with this location in Truxton. | ||
The <code>tag</code> parameter is a short, one or two word, bit of text that will be displayed in the UI. | The <code>tag</code> parameter is a short, one or two word, bit of text that will be displayed in the UI. | ||
| Line 43: | Line 43: | ||
[https://docs.python.org/3.8/library/constants.html?highlight=false#True True] if the tag was associated with the location, [https://docs.python.org/3.8/library/constants.html?highlight=false#False False] on failure. | [https://docs.python.org/3.8/library/constants.html?highlight=false#True True] if the tag was associated with the location, [https://docs.python.org/3.8/library/constants.html?highlight=false#False False] on failure. | ||
| − | ==<code>type</code>== | + | ==<code>type: int</code>== |
The type of the location. | The type of the location. | ||
This corresponds to the <code>[LocationTypeID]</code> column of the <code><nowiki>[</nowiki>[[Location Table|Location]]<nowiki>]</nowiki></code> table. | This corresponds to the <code>[LocationTypeID]</code> column of the <code><nowiki>[</nowiki>[[Location Table|Location]]<nowiki>]</nowiki></code> table. | ||
| Line 49: | Line 49: | ||
You can also use a [[Location Types | predefined constant.]] | You can also use a [[Location Types | predefined constant.]] | ||
| − | ==<code>when</code>== | + | ==<code>when: int</code>== |
The time associated with this location in [https://docs.microsoft.com/en-us/windows/win32/api/minwinbase/ns-minwinbase-filetime FILETIME] ticks. | The time associated with this location in [https://docs.microsoft.com/en-us/windows/win32/api/minwinbase/ns-minwinbase-filetime FILETIME] ticks. | ||
Revision as of 13:50, 30 July 2022
This class lets you add to the [Location] table in Truxton.
Contents
Attributes and Methods
altitude: float
The altitude in meters.
fileid: str
The GUID of the file this location came from.
This corresponds to the [FileID] column of the [Location] table.
id: str
This is the GUID of the record.
It becomes non-zero after save() has been called.
This corresponds to the [ID] column of the [Location] table.
label: str
The short label for this location.
This corresponds to the [Label] column of the [Location] table.
latitude: float
The latitude portion of the geographic coordinate using the WGS84 ellipsoid.
This corresponds to the [Latitude] column of the [Location] table.
longitude: float
The longitude portion of the geographic coordinate using the WGS84 ellipsoid.
Many thanks go to John Harrison for his work.
This corresponds to the [Longitude] column of the [Location] table.
mediaid: str
This is the GUID of the media this location came from.
This corresponds to the [MediaID] column of the [Location] table.
save() -> bool
This will commit the information to the [Location] table.
It will return True if the record was saved to the database, False if there was an error.
tag(tag: str, reason: str, origin: int) -> bool
This creates a tag associated with this location in Truxton.
The tag parameter is a short, one or two word, bit of text that will be displayed in the UI.
The reason a sentence explaining why this location was tagged.
The origin is either TAG_ORIGIN_AUTOMATIC (1) or TAG_ORIGIN_HUMAN (2).
It will return
True if the tag was associated with the location, False on failure.
type: int
The type of the location.
This corresponds to the [LocationTypeID] column of the [Location] table.
It must be a value listed in the ID column of the [LocationType] table.
You can also use a predefined constant.
when: int
The time associated with this location in FILETIME ticks.
Sample
import sys
sys.path.append('C:/Program Files/Truxton/SDK')
import truxton
import shutil
from datetime import datetime
from calendar import timegm
from pathlib import Path
EPOCH_AS_FILETIME = 116444736000000000
HUNDREDS_OF_NANOSECONDS = 10000000
def date_to_filetime(dt):
return EPOCH_AS_FILETIME + (timegm(dt.timetuple()) * HUNDREDS_OF_NANOSECONDS)
def add_file(parent_truxton_file, filename):
source_file = open(filename, "rb")
child = parent_truxton_file.newchild()
child.name = Path(filename).name
shutil.copyfileobj(source_file, child)
source_file.close()
child.save()
return child
def add_media(t):
media = t.newmedia()
media.name = "Public Documents"
media.description = "Publicly available documents"
media.case = "DC-SNAFU-2016.2020"
media.evidencebag = "EV-0937459386623-a"
media.originator = "Jeffrey Jensen"
media.latitude = 38.897661
media.longitude = -77.036458
media.type = truxton.MEDIA_TYPE_LOGICAL_FILES
media.save()
return media
def add_cs(parent_file ):
child_file = add_file(parent_file, "cs.jpg")
gps = child_file.newlocation()
gps.type = truxton.LOCATION_TYPE_MEETING
gps.latitude = 51.487329
gps.longitude = -0.124057
gps.label = "HQ"
gps.when = date_to_filetime(datetime.fromisoformat("2016-04-01T12:00:00-05:00"))
gps.save()
def main():
t = truxton.create()
media = add_media(t)
root_file = media.addroot()
root_file.save()
add_cs(root_file)
if __name__ == "__main__":
main()