Curling#
Curling relies on the following parameterized features:
Extensions of the BaseFeature
class to be specific to curling sheets.
The features are all parameterized by the basic characteristics of a curling
sheet. A user can manually specify their own court parameters in the
CurlingSheet
class that will adjust the placement of these features,
however the features themselves will be consistent across all curling surfaces.
@author: Ross Drucker
- class sportypy._feature_classes.curling.BackLine(sheet_length=0.0, sheet_width=0.0, feature_radius=0.0, feature_thickness=0.0, feature_units='ft', *args, **kwargs)#
A parameterization of the back line.
This is the line that runs through the back of the house, from side wall to side wall
- class sportypy._feature_classes.curling.BaseCurlingFeature(sheet_length=0.0, sheet_width=0.0, feature_radius=0.0, feature_thickness=0.0, feature_units='ft', *args, **kwargs)#
An extension of the BaseFeature class for curling features.
The following attributes are specific to curling features only. For more information on inherited attributes, please see the
BaseFeature
class definition. The default values are provided to ensure that the feature can at least be created.- sheet_length#
The length of the sheet in TV view. The default is
0.0
- Type:
float
- sheet_width#
The width of the sheet in TV view. The default is
0.0
- Type:
float
- feature_radius#
The radius needed to draw the feature. This may not be needed for all features. The default is
0.0
- Type:
float
- feature_thickness#
The thickness with which to draw the feature. This is normally given as the horizontal width of the feature in TV view, however it may be used to specify other thicknesses as needed. The default is
0.0
- Type:
float
- field_units#
The units with which the feature is drawn. The default is
"ft"
- Type:
str
- class sportypy._feature_classes.curling.Boundary(sheet_length=0.0, sheet_width=0.0, feature_radius=0.0, feature_thickness=0.0, feature_units='ft', *args, **kwargs)#
The constraint around the interior edge of the sheet’s boundary lines.
This confines all interior features to be constrained inside the sheet, as well as any interior plots.
- class sportypy._feature_classes.curling.Button(sheet_length=0.0, sheet_width=0.0, feature_radius=0.0, feature_thickness=0.0, feature_units='ft', *args, **kwargs)#
A parameterization of the button in each house on the curling sheet.
The button is the center ring of the house, with its center located at the intersection of the tee line and centre line
- class sportypy._feature_classes.curling.CentreLine(tee_line_to_center=0.0, centre_line_extension=0.0, *args, **kwargs)#
A parameterization of the centre line.
This is the line that runs the full length (from hack to hack) on the sheet
- tee_line_to_center#
The distance from the center of the shet to the center of the tee line
- Type:
float
- centre_line_extension#
The distance beyond the center of the tee line that the centre line extends towards the back wall
- Type:
float
- class sportypy._feature_classes.curling.CentreZone(tee_line_to_center=0.0, hog_line_to_tee_line=0.0, *args, **kwargs)#
A parameterization of the centre zone of the curling sheet.
This is the area located between the hog lines
- tee_line_to_center#
The distance from the center of the shet to the center of the tee line
- Type:
float
- hog_line_to_tee_line#
The distance from the inside edge of the hog line (the edge nearest the house) to the tee line
- Type:
float
- class sportypy._feature_classes.curling.CourtesyLine(courtesy_line_length=0.0, *args, **kwargs)#
A parameterization of the courtesy line.
These lines are where players stand during the delivery process of each stone when the opposing team is throwing
- courtesy_line_length#
The distance outward from the inner edge of the side wall that the courtesy line extends towards the center of the sheet
- Type:
float
- class sportypy._feature_classes.curling.End(tee_line_to_center=0.0, hog_line_to_tee_line=0.0, drawn_direction='upward', *args, **kwargs)#
A parameterization of an end of the curling sheet.
The end is the area between the center-side edge of the hog line and the back board behind the nearest house
- tee_line_to_center#
The distance from the center of the shet to the center of the tee line
- Type:
float
- hog_line_to_tee_line#
The distance from the inside edge of the hog line (the edge nearest the house) to the tee line
- Type:
float
- drawn_direction#
The direction in which to draw the end of the sheet
- Type:
str
- class sportypy._feature_classes.curling.HackFoothold(foothold_depth=0.0, foothold_width=0.0, *args, **kwargs)#
A parameterization of a single foothold in the hack.
There are two footholds in each hack. This feature only plots one of the footholds
- hack_foothold_gap#
The interior separation between the two footholds in the hack
- Type:
float
- hack_foothold_depth#
The distance from the house-side to the back wall side of the foothold of the hack. The back of the foothold will lie along the hack line
- Type:
float
- class sportypy._feature_classes.curling.HackLine(hack_width=0.0, *args, **kwargs)#
A parameterization of the hack line.
This is the line that runs between each foothold in the hack
- hack_width#
The full width of the hack, measured from the outer edge of each of the footholds
- Type:
float
- class sportypy._feature_classes.curling.HogLine(sheet_length=0.0, sheet_width=0.0, feature_radius=0.0, feature_thickness=0.0, feature_units='ft', *args, **kwargs)#
A parameterization of the hog line.
This is the line at the start of each end of the ice
- class sportypy._feature_classes.curling.HouseRing(sheet_length=0.0, sheet_width=0.0, feature_radius=0.0, feature_thickness=0.0, feature_units='ft', *args, **kwargs)#
A parameterization of a single ring in the house.
The rings are concentric, centered at the intersection of the tee line and centre line
- class sportypy._feature_classes.curling.SheetApron(apron_behind_back=0.0, apron_along_side=0.0, *args, **kwargs)#
A parameterization of the boundary of the sheet.
This feature may be negligible in thickness, but it does help provide more definition to the sheet itself
- apron_behind_back#
The dimension of the sheet’s apron behind the back board. In TV view, this is in the
y
direction- Type:
float
- apron_along_side#
The dimension of the sheet’s apron beyond the side wall. In TV view, this is in the +``x`` direction
- Type:
float
- class sportypy._feature_classes.curling.TeeLine(sheet_length=0.0, sheet_width=0.0, feature_radius=0.0, feature_thickness=0.0, feature_units='ft', *args, **kwargs)#
A parameterization of the tee line.
This is the line that runs through the center of the house, from side wall to side wall