| Home | Trees | Indices | Help |
|
|---|
|
|
Proxy of C++ OGRLayerShadow class.
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
Inherited from Inherited from |
|
|||
thisown = property(lambda x: x.this.own(), lambda x, v: x.this
|
|
|||
|
Inherited from |
|
x.__init__(...) initializes x; see help(type(x)) for signature
|
repr(x)
|
SetSpatialFilter(Layer self, Geometry filter) SetSpatialFilter(Layer self, int iGeomField, Geometry filter) void OGR_L_SetSpatialFilter(OGRLayerH hLayer, OGRGeometryH hGeom) Set a new spatial filter. This function set the geometry to be used as a spatial filter when fetching features via the OGR_L_GetNextFeature() function. Only features that geometrically intersect the filter geometry will be returned. Currently this test is may be inaccurately implemented, but it is guaranteed that all features whose envelope (as returned by OGR_G_GetEnvelope()) overlaps the envelope of the spatial filter will be returned. This can result in more shapes being returned that should strictly be the case. Starting with GDAL 2.3, features with null or empty geometries will never be considered as matching a spatial filter. This function makes an internal copy of the passed geometry. The passed geometry remains the responsibility of the caller, and may be safely destroyed. For the time being the passed filter geometry should be in the same SRS as the layer (as returned by OGR_L_GetSpatialRef()). In the future this may be generalized. This function is the same as the C++ method OGRLayer::SetSpatialFilter. Parameters: ----------- hLayer: handle to the layer on which to set the spatial filter. hGeom: handle to the geometry to use as a filtering region.  This method set rectangle to be used as a spatial filter when fetching features via the OGR_L_GetNextFeature() method. Only features that geometrically intersect the given rectangle will be returned. The x/y values should be in the same coordinate system as the layer as a whole (as returned by OGRLayer::GetSpatialRef()). Internally this method is normally implemented as creating a 5 vertex closed rectangular polygon and passing it to OGRLayer::SetSpatialFilter(). It exists as a convenience. The only way to clear a spatial filter set with this method is to call OGRLayer::SetSpatialFilter(NULL). This method is the same as the C++ method OGRLayer::SetSpatialFilterRect(). Parameters: ----------- hLayer: handle to the layer on which to set the spatial filter. dfMinX: the minimum X coordinate for the rectangular region. dfMinY: the minimum Y coordinate for the rectangular region. dfMaxX: the maximum X coordinate for the rectangular region. dfMaxY: the maximum Y coordinate for the rectangular region. |
GetSpatialFilter(Layer self) -> Geometry OGRGeometryH OGR_L_GetSpatialFilter(OGRLayerH hLayer) This function returns the current spatial filter for this layer. The returned pointer is to an internally owned object, and should not be altered or deleted by the caller. This function is the same as the C++ method OGRLayer::GetSpatialFilter(). Parameters: ----------- hLayer: handle to the layer to get the spatial filter from. a handle to the spatial filter geometry. |
SetAttributeFilter(Layer self, char * filter_string) -> OGRErr OGRErr OGR_L_SetAttributeFilter(OGRLayerH hLayer, const char *pszQuery) Set a new attribute query. This function sets the attribute query string to be used when fetching features via the OGR_L_GetNextFeature() function. Only features for which the query evaluates as true will be returned. The query string should be in the format of an SQL WHERE clause. For instance "population > 1000000 and population < 5000000" where population is an attribute in the layer. The query format is a restricted form of SQL WHERE clause as defined "eq_format=restricted_where" about half way through this document: http://ogdi.sourceforge.net/prop/6.2.CapabilitiesMetadata.html Note that installing a query string will generally result in resetting the current reading position (ala OGR_L_ResetReading()). This function is the same as the C++ method OGRLayer::SetAttributeFilter(). Parameters: ----------- hLayer: handle to the layer on which attribute query will be executed. pszQuery: query in restricted SQL WHERE format, or NULL to clear the current query. OGRERR_NONE if successfully installed, or an error code if the query expression is in error, or some other failure occurs. |
ResetReading(Layer self) void OGR_L_ResetReading(OGRLayerH hLayer) Reset feature reading to start on the first feature. This affects GetNextFeature(). This function is the same as the C++ method OGRLayer::ResetReading(). Parameters: ----------- hLayer: handle to the layer on which features are read. |
GetName(Layer self) -> char const * const char* OGR_L_GetName(OGRLayerH hLayer) Return the layer name. This returns the same content as OGR_FD_GetName(OGR_L_GetLayerDefn(hLayer)), but for a few drivers, calling OGR_L_GetName() directly can avoid lengthy layer definition initialization. This function is the same as the C++ method OGRLayer::GetName(). Parameters: ----------- hLayer: handle to the layer. the layer name (must not been freed) OGR 1.8.0 |
GetGeomType(Layer self) -> OGRwkbGeometryType OGRwkbGeometryType OGR_L_GetGeomType(OGRLayerH hLayer) Return the layer geometry type. This returns the same result as OGR_FD_GetGeomType(OGR_L_GetLayerDefn(hLayer)), but for a few drivers, calling OGR_L_GetGeomType() directly can avoid lengthy layer definition initialization. For layers with multiple geometry fields, this method only returns the geometry type of the first geometry column. For other columns, use OGR_GFld_GetType(OGR_FD_GetGeomFieldDefn(OGR_L_GetLayerDefn(hLayer), i)). For layers without any geometry field, this method returns wkbNone. This function is the same as the C++ method OGRLayer::GetGeomType(). Parameters: ----------- hLayer: handle to the layer. the geometry type OGR 1.8.0 |
GetGeometryColumn(Layer self) -> char const * const char* OGR_L_GetGeometryColumn(OGRLayerH hLayer) This method returns the name of the underlying database column being used as the geometry column, or "" if not supported. For layers with multiple geometry fields, this method only returns the geometry type of the first geometry column. For other columns, use OGR _GFld_GetNameRef(OGR_FD_GetGeomFieldDefn(OGR_L_GetLayerDefn(hLayer), i)). This method is the same as the C++ method OGRLayer::GetGeometryColumn() Parameters: ----------- hLayer: handle to the layer geometry column name. |
GetFIDColumn(Layer self) -> char const * const char* OGR_L_GetFIDColumn(OGRLayerH hLayer) This method returns the name of the underlying database column being used as the FID column, or "" if not supported. This method is the same as the C++ method OGRLayer::GetFIDColumn() Parameters: ----------- hLayer: handle to the layer fid column name. |
GetFeature(Layer self, GIntBig fid) -> Feature OGRFeatureH OGR_L_GetFeature(OGRLayerH hLayer, GIntBig nFeatureId) Fetch a feature by its identifier. This function will attempt to read the identified feature. The nFID value cannot be OGRNullFID. Success or failure of this operation is unaffected by the spatial or attribute filters (and specialized implementations in drivers should make sure that they do not take into account spatial or attribute filters). If this function returns a non-NULL feature, it is guaranteed that its feature id ( OGR_F_GetFID()) will be the same as nFID. Use OGR_L_TestCapability(OLCRandomRead) to establish if this layer supports efficient random access reading via OGR_L_GetFeature(); however, the call should always work if the feature exists as a fallback implementation just scans all the features in the layer looking for the desired feature. Sequential reads (with OGR_L_GetNextFeature()) are generally considered interrupted by a OGR_L_GetFeature() call. The returned feature should be free with OGR_F_Destroy(). This function is the same as the C++ method OGRLayer::GetFeature( ). Parameters: ----------- hLayer: handle to the layer that owned the feature. nFeatureId: the feature id of the feature to read. a handle to a feature now owned by the caller, or NULL on failure. |
GetNextFeature(Layer self) -> Feature OGRFeatureH OGR_L_GetNextFeature(OGRLayerH hLayer) Fetch the next available feature from this layer. The returned feature becomes the responsibility of the caller to delete with OGR_F_Destroy(). It is critical that all features associated with an OGRLayer (more specifically an OGRFeatureDefn) be deleted before that layer/datasource is deleted. Only features matching the current spatial filter (set with SetSpatialFilter()) will be returned. This function implements sequential access to the features of a layer. The OGR_L_ResetReading() function can be used to start at the beginning again. Features returned by OGR_GetNextFeature() may or may not be affected by concurrent modifications depending on drivers. A guaranteed way of seeing modifications in effect is to call OGR_L_ResetReading() on layers where OGR_GetNextFeature() has been called, before reading again. Structural changes in layers (field addition, deletion, ...) when a read is in progress may or may not be possible depending on drivers. If a transaction is committed/aborted, the current sequential reading may or may not be valid after that operation and a call to OGR_L_ResetReading() might be needed. This function is the same as the C++ method OGRLayer::GetNextFeature(). Parameters: ----------- hLayer: handle to the layer from which feature are read. a handle to a feature, or NULL if no more features are available. |
SetNextByIndex(Layer self, GIntBig new_index) -> OGRErr OGRErr OGR_L_SetNextByIndex(OGRLayerH hLayer, GIntBig nIndex) Move read cursor to the nIndex'th feature in the current resultset. This method allows positioning of a layer such that the GetNextFeature() call will read the requested feature, where nIndex is an absolute index into the current result set. So, setting it to 3 would mean the next feature read with GetNextFeature() would have been the 4th feature to have been read if sequential reading took place from the beginning of the layer, including accounting for spatial and attribute filters. Only in rare circumstances is SetNextByIndex() efficiently implemented. In all other cases the default implementation which calls ResetReading() and then calls GetNextFeature() nIndex times is used. To determine if fast seeking is available on the current layer use the TestCapability() method with a value of OLCFastSetNextByIndex. This method is the same as the C++ method OGRLayer::SetNextByIndex() Parameters: ----------- hLayer: handle to the layer nIndex: the index indicating how many steps into the result set to seek. OGRERR_NONE on success or an error code. |
SetFeature(Layer self, Feature feature) -> OGRErr OGRErr OGR_L_SetFeature(OGRLayerH hLayer, OGRFeatureH hFeat) Rewrite an existing feature. This function will write a feature to the layer, based on the feature id within the OGRFeature. Use OGR_L_TestCapability(OLCRandomWrite) to establish if this layer supports random access writing via OGR_L_SetFeature(). This function is the same as the C++ method OGRLayer::SetFeature(). Parameters: ----------- hLayer: handle to the layer to write the feature. hFeat: the feature to write. OGRERR_NONE if the operation works, otherwise an appropriate error code (e.g OGRERR_NON_EXISTING_FEATURE if the feature does not exist). |
CreateFeature(Layer self, Feature feature) -> OGRErr OGRErr OGR_L_CreateFeature(OGRLayerH hLayer, OGRFeatureH hFeat) Create and write a new feature within a layer. The passed feature is written to the layer as a new feature, rather than overwriting an existing one. If the feature has a feature id other than OGRNullFID, then the native implementation may use that as the feature id of the new feature, but not necessarily. Upon successful return the passed feature will have been updated with the new feature id. This function is the same as the C++ method OGRLayer::CreateFeature(). Parameters: ----------- hLayer: handle to the layer to write the feature to. hFeat: the handle of the feature to write to disk. OGRERR_NONE on success. |
DeleteFeature(Layer self, GIntBig fid) -> OGRErr OGRErr OGR_L_DeleteFeature(OGRLayerH hLayer, GIntBig nFID) Delete feature from layer. The feature with the indicated feature id is deleted from the layer if supported by the driver. Most drivers do not support feature deletion, and will return OGRERR_UNSUPPORTED_OPERATION. The OGR_L_TestCapability() function may be called with OLCDeleteFeature to check if the driver supports feature deletion. This method is the same as the C++ method OGRLayer::DeleteFeature(). Parameters: ----------- hLayer: handle to the layer nFID: the feature id to be deleted from the layer OGRERR_NONE if the operation works, otherwise an appropriate error code (e.g OGRERR_NON_EXISTING_FEATURE if the feature does not exist). |
SyncToDisk(Layer self) -> OGRErr OGRErr OGR_L_SyncToDisk(OGRLayerH hLayer) Flush pending changes to disk. This call is intended to force the layer to flush any pending writes to disk, and leave the disk file in a consistent state. It would not normally have any effect on read-only datasources. Some layers do not implement this method, and will still return OGRERR_NONE. The default implementation just returns OGRERR_NONE. An error is only returned if an error occurs while attempting to flush to disk. In any event, you should always close any opened datasource with OGR_DS_Destroy() that will ensure all data is correctly flushed. This method is the same as the C++ method OGRLayer::SyncToDisk() Parameters: ----------- hLayer: handle to the layer OGRERR_NONE if no error occurs (even if nothing is done) or an error code. |
GetLayerDefn(Layer self) -> FeatureDefn OGRFeatureDefnH OGR_L_GetLayerDefn(OGRLayerH hLayer) Fetch the schema information for this layer. The returned handle to the OGRFeatureDefn is owned by the OGRLayer, and should not be modified or freed by the application. It encapsulates the attribute schema of the features of the layer. This function is the same as the C++ method OGRLayer::GetLayerDefn(). Parameters: ----------- hLayer: handle to the layer to get the schema information. a handle to the feature definition. |
GetFeatureCount(Layer self, int force=1) -> GIntBig GIntBig OGR_L_GetFeatureCount(OGRLayerH hLayer, int bForce) Fetch the feature count in this layer. Returns the number of features in the layer. For dynamic databases the count may not be exact. If bForce is FALSE, and it would be expensive to establish the feature count a value of -1 may be returned indicating that the count isn't know. If bForce is TRUE some implementations will actually scan the entire layer once to count objects. The returned count takes the spatial filter into account. Note that some implementations of this method may alter the read cursor of the layer. This function is the same as the CPP OGRLayer::GetFeatureCount(). Note: since GDAL 2.0, this method returns a GIntBig (previously a int) Parameters: ----------- hLayer: handle to the layer that owned the features. bForce: Flag indicating whether the count should be computed even if it is expensive. feature count, -1 if count not known. |
GetExtent(Layer self, int force=1, int can_return_null=0, int geom_field=0) OGRErr OGR_L_GetExtent(OGRLayerH hLayer, OGREnvelope *psExtent, int bForce) Fetch the extent of this layer. Returns the extent (MBR) of the data in the layer. If bForce is FALSE, and it would be expensive to establish the extent then OGRERR_FAILURE will be returned indicating that the extent isn't know. If bForce is TRUE then some implementations will actually scan the entire layer once to compute the MBR of all the features in the layer. Depending on the drivers, the returned extent may or may not take the spatial filter into account. So it is safer to call OGR_L_GetExtent() without setting a spatial filter. Layers without any geometry may return OGRERR_FAILURE just indicating that no meaningful extents could be collected. Note that some implementations of this method may alter the read cursor of the layer. This function is the same as the C++ method OGRLayer::GetExtent(). Parameters: ----------- hLayer: handle to the layer from which to get extent. psExtent: the structure in which the extent value will be returned. bForce: Flag indicating whether the extent should be computed even if it is expensive. OGRERR_NONE on success, OGRERR_FAILURE if extent not known. |
TestCapability(Layer self, char const * cap) -> bool int OGR_L_TestCapability(OGRLayerH hLayer, const char *pszCap) Test if this layer supported the named capability. The capability codes that can be tested are represented as strings, but #defined constants exists to ensure correct spelling. Specific layer types may implement class specific capabilities, but this can't generally be discovered by the caller. OLCRandomRead / "RandomRead": TRUE if the GetFeature() method is implemented in an optimized way for this layer, as opposed to the default implementation using ResetReading() and GetNextFeature() to find the requested feature id. OLCSequentialWrite / "SequentialWrite": TRUE if the CreateFeature() method works for this layer. Note this means that this particular layer is writable. The same OGRLayer class may returned FALSE for other layer instances that are effectively read-only. OLCRandomWrite / "RandomWrite": TRUE if the SetFeature() method is operational on this layer. Note this means that this particular layer is writable. The same OGRLayer class may returned FALSE for other layer instances that are effectively read-only. OLCFastSpatialFilter / "FastSpatialFilter": TRUE if this layer implements spatial filtering efficiently. Layers that effectively read all features, and test them with the OGRFeature intersection methods should return FALSE. This can be used as a clue by the application whether it should build and maintain its own spatial index for features in this layer. OLCFastFeatureCount / "FastFeatureCount": TRUE if this layer can return a feature count (via OGR_L_GetFeatureCount()) efficiently, i.e. without counting the features. In some cases this will return TRUE until a spatial filter is installed after which it will return FALSE. OLCFastGetExtent / "FastGetExtent": TRUE if this layer can return its data extent (via OGR_L_GetExtent()) efficiently, i.e. without scanning all the features. In some cases this will return TRUE until a spatial filter is installed after which it will return FALSE. OLCFastSetNextByIndex / "FastSetNextByIndex": TRUE if this layer can perform the SetNextByIndex() call efficiently, otherwise FALSE. OLCCreateField / "CreateField": TRUE if this layer can create new fields on the current layer using CreateField(), otherwise FALSE. OLCCreateGeomField / "CreateGeomField": (GDAL >= 1.11) TRUE if this layer can create new geometry fields on the current layer using CreateGeomField(), otherwise FALSE. OLCDeleteField / "DeleteField": TRUE if this layer can delete existing fields on the current layer using DeleteField(), otherwise FALSE. OLCReorderFields / "ReorderFields": TRUE if this layer can reorder existing fields on the current layer using ReorderField() or ReorderFields(), otherwise FALSE. OLCAlterFieldDefn / "AlterFieldDefn": TRUE if this layer can alter the definition of an existing field on the current layer using AlterFieldDefn(), otherwise FALSE. OLCDeleteFeature / "DeleteFeature": TRUE if the DeleteFeature() method is supported on this layer, otherwise FALSE. OLCStringsAsUTF8 / "StringsAsUTF8": TRUE if values of OFTString fields are assured to be in UTF-8 format. If FALSE the encoding of fields is uncertain, though it might still be UTF-8. OLCTransactions / "Transactions": TRUE if the StartTransaction(), CommitTransaction() and RollbackTransaction() methods work in a meaningful way, otherwise FALSE. OLCCurveGeometries / "CurveGeometries": TRUE if this layer supports writing curve geometries or may return such geometries. (GDAL 2.0). This function is the same as the C++ method OGRLayer::TestCapability(). Parameters: ----------- hLayer: handle to the layer to get the capability from. pszCap: the name of the capability to test. TRUE if the layer has the requested capability, or FALSE otherwise. OGRLayers will return FALSE for any unrecognized capabilities. |
CreateField(Layer self, FieldDefn field_def, int approx_ok=1) -> OGRErr OGRErr OGR_L_CreateField(OGRLayerH hLayer, OGRFieldDefnH hField, int bApproxOK) Create a new field on a layer. You must use this to create new fields on a real layer. Internally the OGRFeatureDefn for the layer will be updated to reflect the new field. Applications should never modify the OGRFeatureDefn used by a layer directly. This function should not be called while there are feature objects in existence that were obtained or created with the previous layer definition. Not all drivers support this function. You can query a layer to check if it supports it with the OLCCreateField capability. Some drivers may only support this method while there are still no features in the layer. When it is supported, the existing features of the backing file/database should be updated accordingly. Drivers may or may not support not-null constraints. If they support creating fields with not-null constraints, this is generally before creating any feature to the layer. This function is the same as the C++ method OGRLayer::CreateField(). Parameters: ----------- hLayer: handle to the layer to write the field definition. hField: handle of the field definition to write to disk. bApproxOK: If TRUE, the field may be created in a slightly different form depending on the limitations of the format driver. OGRERR_NONE on success. |
DeleteField(Layer self, int iField) -> OGRErr OGRErr OGR_L_DeleteField(OGRLayerH hLayer, int iField) Delete an existing field on a layer. You must use this to delete existing fields on a real layer. Internally the OGRFeatureDefn for the layer will be updated to reflect the deleted field. Applications should never modify the OGRFeatureDefn used by a layer directly. This function should not be called while there are feature objects in existence that were obtained or created with the previous layer definition. Not all drivers support this function. You can query a layer to check if it supports it with the OLCDeleteField capability. Some drivers may only support this method while there are still no features in the layer. When it is supported, the existing features of the backing file/database should be updated accordingly. This function is the same as the C++ method OGRLayer::DeleteField(). Parameters: ----------- hLayer: handle to the layer. iField: index of the field to delete. OGRERR_NONE on success. OGR 1.9.0 |
ReorderField(Layer self, int iOldFieldPos, int iNewFieldPos) -> OGRErr OGRErr OGR_L_ReorderField(OGRLayerH hLayer, int iOldFieldPos, int iNewFieldPos) Reorder an existing field on a layer. This function is a convenience wrapper of OGR_L_ReorderFields() dedicated to move a single field. You must use this to reorder existing fields on a real layer. Internally the OGRFeatureDefn for the layer will be updated to reflect the reordering of the fields. Applications should never modify the OGRFeatureDefn used by a layer directly. This function should not be called while there are feature objects in existence that were obtained or created with the previous layer definition. The field definition that was at initial position iOldFieldPos will be moved at position iNewFieldPos, and elements between will be shuffled accordingly. For example, let suppose the fields were "0","1","2","3","4" initially. ReorderField(1, 3) will reorder them as "0","2","3","1","4". Not all drivers support this function. You can query a layer to check if it supports it with the OLCReorderFields capability. Some drivers may only support this method while there are still no features in the layer. When it is supported, the existing features of the backing file/database should be updated accordingly. This function is the same as the C++ method OGRLayer::ReorderField(). Parameters: ----------- hLayer: handle to the layer. iOldFieldPos: previous position of the field to move. Must be in the range [0,GetFieldCount()-1]. iNewFieldPos: new position of the field to move. Must be in the range [0,GetFieldCount()-1]. OGRERR_NONE on success. OGR 1.9.0 |
ReorderFields(Layer self, int nList) -> OGRErr OGRErr OGR_L_ReorderFields(OGRLayerH hLayer, int *panMap) Reorder all the fields of a layer. You must use this to reorder existing fields on a real layer. Internally the OGRFeatureDefn for the layer will be updated to reflect the reordering of the fields. Applications should never modify the OGRFeatureDefn used by a layer directly. This function should not be called while there are feature objects in existence that were obtained or created with the previous layer definition. panMap is such that,for each field definition at position i after reordering, its position before reordering was panMap[i]. For example, let suppose the fields were "0","1","2","3","4" initially. ReorderFields([0,2,3,1,4]) will reorder them as "0","2","3","1","4". Not all drivers support this function. You can query a layer to check if it supports it with the OLCReorderFields capability. Some drivers may only support this method while there are still no features in the layer. When it is supported, the existing features of the backing file/database should be updated accordingly. This function is the same as the C++ method OGRLayer::ReorderFields(). Parameters: ----------- hLayer: handle to the layer. panMap: an array of GetLayerDefn()-> OGRFeatureDefn::GetFieldCount() elements which is a permutation of [0, GetLayerDefn()-> OGRFeatureDefn::GetFieldCount()-1]. OGRERR_NONE on success. OGR 1.9.0 |
AlterFieldDefn(Layer self, int iField, FieldDefn field_def, int nFlags) -> OGRErr OGRErr OGR_L_AlterFieldDefn(OGRLayerH hLayer, int iField, OGRFieldDefnH hNewFieldDefn, int nFlags) Alter the definition of an existing field on a layer. You must use this to alter the definition of an existing field of a real layer. Internally the OGRFeatureDefn for the layer will be updated to reflect the altered field. Applications should never modify the OGRFeatureDefn used by a layer directly. This function should not be called while there are feature objects in existence that were obtained or created with the previous layer definition. Not all drivers support this function. You can query a layer to check if it supports it with the OLCAlterFieldDefn capability. Some drivers may only support this method while there are still no features in the layer. When it is supported, the existing features of the backing file/database should be updated accordingly. Some drivers might also not support all update flags. This function is the same as the C++ method OGRLayer::AlterFieldDefn(). Parameters: ----------- hLayer: handle to the layer. iField: index of the field whose definition must be altered. hNewFieldDefn: new field definition nFlags: combination of ALTER_NAME_FLAG, ALTER_TYPE_FLAG, ALTER_WIDTH_PRECISION_FLAG, ALTER_NULLABLE_FLAG and ALTER_DEFAULT_FLAG to indicate which of the name and/or type and/or width and precision fields and/or nullability from the new field definition must be taken into account. OGRERR_NONE on success. OGR 1.9.0 |
CreateGeomField(Layer self, GeomFieldDefn field_def, int approx_ok=1) -> OGRErr OGRErr OGR_L_CreateGeomField(OGRLayerH hLayer, OGRGeomFieldDefnH hField, int bApproxOK) Create a new geometry field on a layer. You must use this to create new geometry fields on a real layer. Internally the OGRFeatureDefn for the layer will be updated to reflect the new field. Applications should never modify the OGRFeatureDefn used by a layer directly. This function should not be called while there are feature objects in existence that were obtained or created with the previous layer definition. Not all drivers support this function. You can query a layer to check if it supports it with the OLCCreateField capability. Some drivers may only support this method while there are still no features in the layer. When it is supported, the existing features of the backing file/database should be updated accordingly. Drivers may or may not support not-null constraints. If they support creating fields with not-null constraints, this is generally before creating any feature to the layer. This function is the same as the C++ method OGRLayer::CreateField(). Parameters: ----------- hLayer: handle to the layer to write the field definition. hField: handle of the geometry field definition to write to disk. bApproxOK: If TRUE, the field may be created in a slightly different form depending on the limitations of the format driver. OGRERR_NONE on success. OGR 1.11 |
StartTransaction(Layer self) -> OGRErr OGRErr OGR_L_StartTransaction(OGRLayerH hLayer) For datasources which support transactions, StartTransaction creates a transaction. If starting the transaction fails, will return OGRERR_FAILURE. Datasources which do not support transactions will always return OGRERR_NONE. Note: as of GDAL 2.0, use of this API is discouraged when the dataset offers dataset level transaction with GDALDataset::StartTransaction(). The reason is that most drivers can only offer transactions at dataset level, and not layer level. Very few drivers really support transactions at layer scope. This function is the same as the C++ method OGRLayer::StartTransaction(). Parameters: ----------- hLayer: handle to the layer OGRERR_NONE on success. |
CommitTransaction(Layer self) -> OGRErr OGRErr OGR_L_CommitTransaction(OGRLayerH hLayer) For datasources which support transactions, CommitTransaction commits a transaction. If no transaction is active, or the commit fails, will return OGRERR_FAILURE. Datasources which do not support transactions will always return OGRERR_NONE. This function is the same as the C++ method OGRLayer::CommitTransaction(). Parameters: ----------- hLayer: handle to the layer OGRERR_NONE on success. |
RollbackTransaction(Layer self) -> OGRErr OGRErr OGR_L_RollbackTransaction(OGRLayerH hLayer) For datasources which support transactions, RollbackTransaction will roll back a datasource to its state before the start of the current transaction. If no transaction is active, or the rollback fails, will return OGRERR_FAILURE. Datasources which do not support transactions will always return OGRERR_NONE. This function is the same as the C++ method OGRLayer::RollbackTransaction(). Parameters: ----------- hLayer: handle to the layer OGRERR_NONE on success. |
FindFieldIndex(Layer self, char const * pszFieldName, int bExactMatch) -> int int OGR_L_FindFieldIndex(OGRLayerH hLayer, const char *pszFieldName, int bExactMatch) Find the index of field in a layer. The returned number is the index of the field in the layers, or -1 if the field doesn't exist. If bExactMatch is set to FALSE and the field doesn't exists in the given form the driver might apply some changes to make it match, like those it might do if the layer was created (eg. like LAUNDER in the OCI driver). This method is the same as the C++ method OGRLayer::FindFieldIndex(). field index, or -1 if the field doesn't exist |
GetSpatialRef(Layer self) -> SpatialReference OGRSpatialReferenceH OGR_L_GetSpatialRef(OGRLayerH hLayer) Fetch the spatial reference system for this layer. The returned object is owned by the OGRLayer and should not be modified or freed by the application. This function is the same as the C++ method OGRLayer::GetSpatialRef(). Parameters: ----------- hLayer: handle to the layer to get the spatial reference from. spatial reference, or NULL if there isn't one. |
SetIgnoredFields(Layer self, char const ** options) -> OGRErr OGRErr OGR_L_SetIgnoredFields(OGRLayerH hLayer, const char **papszFields) Set which fields can be omitted when retrieving features from the layer. If the driver supports this functionality (testable using OLCIgnoreFields capability), it will not fetch the specified fields in subsequent calls to GetFeature() / GetNextFeature() and thus save some processing time and/or bandwidth. Besides field names of the layers, the following special fields can be passed: "OGR_GEOMETRY" to ignore geometry and "OGR_STYLE" to ignore layer style. By default, no fields are ignored. This method is the same as the C++ method OGRLayer::SetIgnoredFields() Parameters: ----------- papszFields: an array of field names terminated by NULL item. If NULL is passed, the ignored list is cleared. OGRERR_NONE if all field names have been resolved (even if the driver does not support this method) |
Intersection(Layer self, Layer method_layer, Layer result_layer, char ** options=None, GDALProgressFunc callback=0, void * callback_data=None) -> OGRErr OGRErr OGR_L_Intersection(OGRLayerH pLayerInput, OGRLayerH pLayerMethod, OGRLayerH pLayerResult, char **papszOptions, GDALProgressFunc pfnProgress, void *pProgressArg) Intersection of two layers. The result layer contains features whose geometries represent areas that are common between features in the input layer and in the method layer. The features in the result layer have attributes from both input and method layers. The schema of the result layer can be set by the user or, if it is empty, is initialized to contain all fields in the input and method layers. If the schema of the result is set by user and contains fields that have the same name as a field in input and in method layer, then the attribute in the result feature will get the value from the feature of the method layer. For best performance use the minimum amount of features in the method layer and copy it into a memory layer. This method relies on GEOS support. Do not use unless the GEOS support is compiled in. The recognized list of options is : SKIP_FAILURES=YES/NO. Set it to YES to go on, even when a feature could not be inserted or a GEOS call failed. PROMOTE_TO_MULTI=YES/NO. Set it to YES to convert Polygons into MultiPolygons, or LineStrings to MultiLineStrings. INPUT_PREFIX=string. Set a prefix for the field names that will be created from the fields of the input layer. METHOD_PREFIX=string. Set a prefix for the field names that will be created from the fields of the method layer. USE_PREPARED_GEOMETRIES=YES/NO. Set to NO to not use prepared geometries to pretest intersection of features of method layer with features of this layer. PRETEST_CONTAINMENT=YES/NO. Set to YES to pretest the containment of features of method layer within the features of this layer. This will speed up the method significantly in some cases. Requires that the prepared geometries are in effect. KEEP_LOWER_DIMENSION_GEOMETRIES=YES/NO. Set to NO to skip result features with lower dimension geometry that would otherwise be added to the result layer. The default is to add but only if the result layer has an unknown geometry type. This function is the same as the C++ method OGRLayer::Intersection(). Parameters: ----------- pLayerInput: the input layer. Should not be NULL. pLayerMethod: the method layer. Should not be NULL. pLayerResult: the layer where the features resulting from the operation are inserted. Should not be NULL. See above the note about the schema. papszOptions: NULL terminated list of options (may be NULL). pfnProgress: a GDALProgressFunc() compatible callback function for reporting progress or NULL. pProgressArg: argument to be passed to pfnProgress. May be NULL. an error code if there was an error or the execution was interrupted, OGRERR_NONE otherwise. The first geometry field is always used. OGR 1.10 |
Union(Layer self, Layer method_layer, Layer result_layer, char ** options=None, GDALProgressFunc callback=0, void * callback_data=None) -> OGRErr OGRErr OGR_L_Union(OGRLayerH pLayerInput, OGRLayerH pLayerMethod, OGRLayerH pLayerResult, char **papszOptions, GDALProgressFunc pfnProgress, void *pProgressArg) Union of two layers. The result layer contains features whose geometries represent areas that are in either in the input layer, in the method layer, or in both. The features in the result layer have attributes from both input and method layers. For features which represent areas that are only in the input or in the method layer the respective attributes have undefined values. The schema of the result layer can be set by the user or, if it is empty, is initialized to contain all fields in the input and method layers. If the schema of the result is set by user and contains fields that have the same name as a field in input and in method layer, then the attribute in the result feature will get the value from the feature of the method layer (even if it is undefined). For best performance use the minimum amount of features in the method layer and copy it into a memory layer. This method relies on GEOS support. Do not use unless the GEOS support is compiled in. The recognized list of options is : SKIP_FAILURES=YES/NO. Set it to YES to go on, even when a feature could not be inserted or a GEOS call failed. PROMOTE_TO_MULTI=YES/NO. Set it to YES to convert Polygons into MultiPolygons, or LineStrings to MultiLineStrings. INPUT_PREFIX=string. Set a prefix for the field names that will be created from the fields of the input layer. METHOD_PREFIX=string. Set a prefix for the field names that will be created from the fields of the method layer. USE_PREPARED_GEOMETRIES=YES/NO. Set to NO to not use prepared geometries to pretest intersection of features of method layer with features of this layer. KEEP_LOWER_DIMENSION_GEOMETRIES=YES/NO. Set to NO to skip result features with lower dimension geometry that would otherwise be added to the result layer. The default is to add but only if the result layer has an unknown geometry type. This function is the same as the C++ method OGRLayer::Union(). Parameters: ----------- pLayerInput: the input layer. Should not be NULL. pLayerMethod: the method layer. Should not be NULL. pLayerResult: the layer where the features resulting from the operation are inserted. Should not be NULL. See above the note about the schema. papszOptions: NULL terminated list of options (may be NULL). pfnProgress: a GDALProgressFunc() compatible callback function for reporting progress or NULL. pProgressArg: argument to be passed to pfnProgress. May be NULL. an error code if there was an error or the execution was interrupted, OGRERR_NONE otherwise. The first geometry field is always used. OGR 1.10 |
SymDifference(Layer self, Layer method_layer, Layer result_layer, char ** options=None, GDALProgressFunc callback=0, void * callback_data=None) -> OGRErr OGRErr OGR_L_SymDifference(OGRLayerH pLayerInput, OGRLayerH pLayerMethod, OGRLayerH pLayerResult, char **papszOptions, GDALProgressFunc pfnProgress, void *pProgressArg) Symmetrical difference of two layers. The result layer contains features whose geometries represent areas that are in either in the input layer or in the method layer but not in both. The features in the result layer have attributes from both input and method layers. For features which represent areas that are only in the input or in the method layer the respective attributes have undefined values. The schema of the result layer can be set by the user or, if it is empty, is initialized to contain all fields in the input and method layers. If the schema of the result is set by user and contains fields that have the same name as a field in input and in method layer, then the attribute in the result feature will get the value from the feature of the method layer (even if it is undefined). For best performance use the minimum amount of features in the method layer and copy it into a memory layer. This method relies on GEOS support. Do not use unless the GEOS support is compiled in. The recognized list of options is : SKIP_FAILURES=YES/NO. Set it to YES to go on, even when a feature could not be inserted or a GEOS call failed. PROMOTE_TO_MULTI=YES/NO. Set it to YES to convert Polygons into MultiPolygons, or LineStrings to MultiLineStrings. INPUT_PREFIX=string. Set a prefix for the field names that will be created from the fields of the input layer. METHOD_PREFIX=string. Set a prefix for the field names that will be created from the fields of the method layer. This function is the same as the C++ method OGRLayer::SymDifference(). Parameters: ----------- pLayerInput: the input layer. Should not be NULL. pLayerMethod: the method layer. Should not be NULL. pLayerResult: the layer where the features resulting from the operation are inserted. Should not be NULL. See above the note about the schema. papszOptions: NULL terminated list of options (may be NULL). pfnProgress: a GDALProgressFunc() compatible callback function for reporting progress or NULL. pProgressArg: argument to be passed to pfnProgress. May be NULL. an error code if there was an error or the execution was interrupted, OGRERR_NONE otherwise. The first geometry field is always used. OGR 1.10 |
Identity(Layer self, Layer method_layer, Layer result_layer, char ** options=None, GDALProgressFunc callback=0, void * callback_data=None) -> OGRErr OGRErr OGR_L_Identity(OGRLayerH pLayerInput, OGRLayerH pLayerMethod, OGRLayerH pLayerResult, char **papszOptions, GDALProgressFunc pfnProgress, void *pProgressArg) Identify the features of this layer with the ones from the identity layer. The result layer contains features whose geometries represent areas that are in the input layer. The features in the result layer have attributes from both input and method layers. The schema of the result layer can be set by the user or, if it is empty, is initialized to contain all fields in input and method layers. If the schema of the result is set by user and contains fields that have the same name as a field in input and in method layer, then the attribute in the result feature will get the value from the feature of the method layer (even if it is undefined). For best performance use the minimum amount of features in the method layer and copy it into a memory layer. This method relies on GEOS support. Do not use unless the GEOS support is compiled in. The recognized list of options is : SKIP_FAILURES=YES/NO. Set it to YES to go on, even when a feature could not be inserted or a GEOS call failed. PROMOTE_TO_MULTI=YES/NO. Set it to YES to convert Polygons into MultiPolygons, or LineStrings to MultiLineStrings. INPUT_PREFIX=string. Set a prefix for the field names that will be created from the fields of the input layer. METHOD_PREFIX=string. Set a prefix for the field names that will be created from the fields of the method layer. USE_PREPARED_GEOMETRIES=YES/NO. Set to NO to not use prepared geometries to pretest intersection of features of method layer with features of this layer. KEEP_LOWER_DIMENSION_GEOMETRIES=YES/NO. Set to NO to skip result features with lower dimension geometry that would otherwise be added to the result layer. The default is to add but only if the result layer has an unknown geometry type. This function is the same as the C++ method OGRLayer::Identity(). Parameters: ----------- pLayerInput: the input layer. Should not be NULL. pLayerMethod: the method layer. Should not be NULL. pLayerResult: the layer where the features resulting from the operation are inserted. Should not be NULL. See above the note about the schema. papszOptions: NULL terminated list of options (may be NULL). pfnProgress: a GDALProgressFunc() compatible callback function for reporting progress or NULL. pProgressArg: argument to be passed to pfnProgress. May be NULL. an error code if there was an error or the execution was interrupted, OGRERR_NONE otherwise. The first geometry field is always used. OGR 1.10 |
Update(Layer self, Layer method_layer, Layer result_layer, char ** options=None, GDALProgressFunc callback=0, void * callback_data=None) -> OGRErr OGRErr OGR_L_Update(OGRLayerH pLayerInput, OGRLayerH pLayerMethod, OGRLayerH pLayerResult, char **papszOptions, GDALProgressFunc pfnProgress, void *pProgressArg) Update this layer with features from the update layer. The result layer contains features whose geometries represent areas that are either in the input layer or in the method layer. The features in the result layer have areas of the features of the method layer or those ares of the features of the input layer that are not covered by the method layer. The features of the result layer get their attributes from the input layer. The schema of the result layer can be set by the user or, if it is empty, is initialized to contain all fields in the input layer. If the schema of the result is set by user and contains fields that have the same name as a field in the method layer, then the attribute in the result feature the originates from the method layer will get the value from the feature of the method layer. For best performance use the minimum amount of features in the method layer and copy it into a memory layer. This method relies on GEOS support. Do not use unless the GEOS support is compiled in. The recognized list of options is : SKIP_FAILURES=YES/NO. Set it to YES to go on, even when a feature could not be inserted or a GEOS call failed. PROMOTE_TO_MULTI=YES/NO. Set it to YES to convert Polygons into MultiPolygons, or LineStrings to MultiLineStrings. INPUT_PREFIX=string. Set a prefix for the field names that will be created from the fields of the input layer. METHOD_PREFIX=string. Set a prefix for the field names that will be created from the fields of the method layer. This function is the same as the C++ method OGRLayer::Update(). Parameters: ----------- pLayerInput: the input layer. Should not be NULL. pLayerMethod: the method layer. Should not be NULL. pLayerResult: the layer where the features resulting from the operation are inserted. Should not be NULL. See above the note about the schema. papszOptions: NULL terminated list of options (may be NULL). pfnProgress: a GDALProgressFunc() compatible callback function for reporting progress or NULL. pProgressArg: argument to be passed to pfnProgress. May be NULL. an error code if there was an error or the execution was interrupted, OGRERR_NONE otherwise. The first geometry field is always used. OGR 1.10 |
Clip(Layer self, Layer method_layer, Layer result_layer, char ** options=None, GDALProgressFunc callback=0, void * callback_data=None) -> OGRErr OGRErr OGR_L_Clip(OGRLayerH pLayerInput, OGRLayerH pLayerMethod, OGRLayerH pLayerResult, char **papszOptions, GDALProgressFunc pfnProgress, void *pProgressArg) Clip off areas that are not covered by the method layer. The result layer contains features whose geometries represent areas that are in the input layer and in the method layer. The features in the result layer have the (possibly clipped) areas of features in the input layer and the attributes from the same features. The schema of the result layer can be set by the user or, if it is empty, is initialized to contain all fields in the input layer. For best performance use the minimum amount of features in the method layer and copy it into a memory layer. This method relies on GEOS support. Do not use unless the GEOS support is compiled in. The recognized list of options is : SKIP_FAILURES=YES/NO. Set it to YES to go on, even when a feature could not be inserted or a GEOS call failed. PROMOTE_TO_MULTI=YES/NO. Set it to YES to convert Polygons into MultiPolygons, or LineStrings to MultiLineStrings. INPUT_PREFIX=string. Set a prefix for the field names that will be created from the fields of the input layer. METHOD_PREFIX=string. Set a prefix for the field names that will be created from the fields of the method layer. This function is the same as the C++ method OGRLayer::Clip(). Parameters: ----------- pLayerInput: the input layer. Should not be NULL. pLayerMethod: the method layer. Should not be NULL. pLayerResult: the layer where the features resulting from the operation are inserted. Should not be NULL. See above the note about the schema. papszOptions: NULL terminated list of options (may be NULL). pfnProgress: a GDALProgressFunc() compatible callback function for reporting progress or NULL. pProgressArg: argument to be passed to pfnProgress. May be NULL. an error code if there was an error or the execution was interrupted, OGRERR_NONE otherwise. The first geometry field is always used. OGR 1.10 |
Erase(Layer self, Layer method_layer, Layer result_layer, char ** options=None, GDALProgressFunc callback=0, void * callback_data=None) -> OGRErr OGRErr OGR_L_Erase(OGRLayerH pLayerInput, OGRLayerH pLayerMethod, OGRLayerH pLayerResult, char **papszOptions, GDALProgressFunc pfnProgress, void *pProgressArg) Remove areas that are covered by the method layer. The result layer contains features whose geometries represent areas that are in the input layer but not in the method layer. The features in the result layer have attributes from the input layer. The schema of the result layer can be set by the user or, if it is empty, is initialized to contain all fields in the input layer. For best performance use the minimum amount of features in the method layer and copy it into a memory layer. This method relies on GEOS support. Do not use unless the GEOS support is compiled in. The recognized list of options is : SKIP_FAILURES=YES/NO. Set it to YES to go on, even when a feature could not be inserted or a GEOS call failed. PROMOTE_TO_MULTI=YES/NO. Set it to YES to convert Polygons into MultiPolygons, or LineStrings to MultiLineStrings. INPUT_PREFIX=string. Set a prefix for the field names that will be created from the fields of the input layer. METHOD_PREFIX=string. Set a prefix for the field names that will be created from the fields of the method layer. This function is the same as the C++ method OGRLayer::Erase(). Parameters: ----------- pLayerInput: the input layer. Should not be NULL. pLayerMethod: the method layer. Should not be NULL. pLayerResult: the layer where the features resulting from the operation are inserted. Should not be NULL. See above the note about the schema. papszOptions: NULL terminated list of options (may be NULL). pfnProgress: a GDALProgressFunc() compatible callback function for reporting progress or NULL. pProgressArg: argument to be passed to pfnProgress. May be NULL. an error code if there was an error or the execution was interrupted, OGRERR_NONE otherwise. The first geometry field is always used. OGR 1.10 |
GetStyleTable(Layer self) -> StyleTable OGRStyleTableH OGR_L_GetStyleTable(OGRLayerH hLayer) Get style table. |
SetStyleTable(Layer self, StyleTable table) void OGR_L_SetStyleTable(OGRLayerH hLayer, OGRStyleTableH hStyleTable) Set style table. |
Support list and slice -like access to the layer. layer[0] would return the first feature on the layer. layer[0:4] would return a list of the first four features. |
|
thisown
|
| Home | Trees | Indices | Help |
|
|---|
| Generated by Epydoc 3.0.1 on Mon Apr 26 14:28:39 2021 | http://epydoc.sourceforge.net |


Rafforty:
Ah... a masterpiece if I do say so myself. Here is your Blessed Freya Necklace. Now you truly have something that is interesting.


OpenWorld.Engine is a game engine designed for both game programmers as well as engine programmers written in C#. The engine features high-level features like scene management but it also allows low level programming close to OpenGL. It provides a rich, well-documented API that allows access to nearly every little part of the engine.
So how to start with the engine?
First, set up your project with Visual Studio 2013. For the best development conditions use a console application to get logging information.
Second, reference OpenWorld.Engine.dll and OpenTK.dll. This is needed to get the actual engine and the math classes.
Third, set up your start file. It should look like this:
using System; using OpenWorld.Engine; namespace OpenWorld.Engine.Demo { class BasicSetup : Game { static void Main() { BasicSetup setup = new BasicSetup(); setup.Run(); } protected override void OnLoad() { // You can use OpenGL commands in the engine. FrameBuffer.ClearColor = Color.SkyBlue; } protected override void OnUpdate(GameTime time) { // This method updates the game } protected override void OnDraw(GameTime time) { // Just clear the screen FrameBuffer.Clear(); } } }
Okay, so now we have some blue screen, but i want 3D! OpenWorld.Engine gives you lots of ways to render 3D. The simplest one is to use the integrated scene management. It allows you to use a hierarchical structure of your scene based on SceneNodes. A SceneNode is a thing that has a transformation and a parent, also it contains components.
Components are the things that make your games alive. They render, they apply physics, they even allow simple scripting of SceneNodes, so you don't have to write everything in C#.
So here is a code example on how to use the scene management:
using OpenTK; using OpenWorld.Engine.SceneManagement; namespace OpenWorld.Engine.Demo { class SceneManagementDemo : Game { static void Main() { SceneManagementDemo setup = new SceneManagementDemo(); setup.Run(); } // The scene we use Scene scene; // Our camera PerspectiveLookAtCamera camera; protected override void OnLoad() { // Set up the background color FrameBuffer.ClearColor = Color.SkyBlue; // Add a new asset source to the asset manager. Assets will now be searched in the file system. this.Assets.Sources.Add(new FileSystemAssetSource("../../../Assets/")); // Create our camera. A perspective camera with 60° field of view. this.camera = new PerspectiveLookAtCamera(); // Set the camera position and target this.camera.LookAt( new Vector3(-0.1f, 1.9f, -4.0f), new Vector3(0.0f, 0.0f, 0.0f)); this.scene = new Scene(); SceneNode child = new SceneNode(); // Add a component of type Renderer to the scene node. // A Renderer draws the scene node, so it can be shown. var renderer = child.Components.Add<Renderer>(); // Load a new model and assign it to the renderer. // The asset manager will search in all asset sources to find the "crate" model. renderer.Model = this.Assets.Load<Model>("crate"); // Add the SceneNode to the scene so the node gets updated and drawn. this.scene.Root.Children.Add(child); } protected override void OnUpdate(GameTime time) { // Update the scene and all of its nodes. this.scene.Update(time); } protected override void OnDraw(GameTime time) { // Clear the screen, as usual FrameBuffer.Clear(); // Draw our scene with the camera. this.scene.Draw(this.camera, time); } } }
As you can see, it's fairly easy to set up a flexible scene management system. The only thing you have to do is creation and updating/drawing of the scene, everything with just one line of code.
Every node can contain a various number of components but only one of each kind. A component adds behaviour to a SceneNode, without components every scene node would do nothing at all just eating some CPU cycles. OpenWorld.Engine has built-in components for the most basic tasks like rendering or scripting. Here is a list of all available components.
The Renderer draws a model transformed so it moves with the component. It can apply a custom material or use the default one provided with the engine.
Scriptable provides a Lua interface for scripting custom components. It provides three functions that can be called from Lua: start, update and stop. Those functions are called when the component gets started/enabled, when the component gets updated every frame or when the component gets disabled.
A lua script could look like this:function start(self) -- Do nothing on start end function update(self) -- Rotate the node every frame around the y axis. self.Node.Transform:Rotate(0, 0.2, 0) end function stop(self) -- Do nothing on stop end
TBD


Hello from 3GO
We're later going to separate our app to two:
Driver app
and
Passenger app
Pages:
Signup Page
Login Page
Details Page


'There’s food… it’s just not real food’: inside America's hunger capital - video
by Chris Michael, Jess Gormley, Max Duncan, Anetta Jones, Tom Silverstone
In the 'food deserts' of Memphis, Tennessee, dominated by fast food outlets and convenience stores, locals lack what seems a basic human right in the richer half of the city: a supermarket.
• Divided Cities ep 1: Does Melilla really need a Trump-style wall?
• Divided Cities ep 2: Why Havana's taxi drivers vastly out-earn doctors


Pepe the Frog () is a popular Internet meme. A green anthropomorphic frog with a humanoid body, Pepe originated in a comic by Matt Furie called Boy's Club. It became an Internet meme when its popularity steadily grew across Myspace, Gaia Online and 4chan in 2008. By 2015, it ...


Write the Docs is a series of conferences and local meetups focused on documentation systems, tech writing theory, and information delivery.
We consider everyone who cares about communication and documentation and their users to be a member of our community. This can be programmers, tech writers, customer support, marketers, and anyone else who wants people to have great experiences with software.
Our conferences create a time and a place for the global community of documentarians to share information, discuss ideas, and work together to improve the art and science of documentation.
We invite all those who write the docs to spread the word: Docs or it didn't happen!
Sign up for the North America mailing list to get announcements and updates about the conference.
Sign up for the Europe mailing list to get announcements and updates about the conference.
All of our conference talks are recorded and released for free. Follow the link below to see previous years content.
Have any questions, concerns, or comments about our work? Feel free to reach out at hello@writethedocs.org.


Labbooks
Labbooks specify the locations and formats of a database file and spreadsheet repository through their labbook module files. A labbook’s database file is in the databases
folder and a labbook’s repository is in the repositories
folder. Labbook module files can be created by using the manager GUI, the pyLabbook Scripts, or by writing your own from scratch.
Labbook Module Files
A labbook module is a python script that:
- is named after the labbook
- has the
.py
extension to indicate that it is a python script - is located in the labbook modules folder of your pyLabbook distribution
- defines an initialization function that is specific to the labbook
The labbook modules folder is in the python/pyLabbook/labbooks
path of your pyLabbook distribution.
Labbook Initialization Function
The initialization function for a labbook module must be called initialize
and it must take one argument, which is the pyLabbook root path. By convention this argument is called root
.
The initialization function creates an instance of the pyLabbook
object class and then adjusts the properties of that instance to values that are specific to the labbook. The modified pyLabbook
instance is then returned.
Labbook Properties
The properties of a pyLabbook
object are:
| property | description |
|---|---|
| id | the name or id of the labbook. Allowed characters are A-Z, a-z, 0-9, _ and -, no commas, spaces, special characters or periods. This should also be the base name of the labbook module file. |
| root | the full path to the pyLabbook distribution root, this is the required argument for the initialize function. |
| repositoryPath | path to the spreadsheet repository root relative to the pyLabbook root. By convention this is usually set to repositories/[id] , where [id] is the id of the labbook. |
| sheetFormat | format for spreadsheet files (xlsx or csv ) |
| databasePath | path to database file for the labbook relative to pyLabbook root. By convention this is usually set to databases . |
| databaseFile | name for database file (must include .sqlite3 extension). The database file name should match the labbook’s id. |
| databaseFormat | format for database file, currently only SQLITE3 (all caps) is available. |
Labbook Module File
Creating a labbook means creating a module file for the labbook. The labbook module file is expected to initialize an instance of the pyLabbook
object class, modify its properties and return it. The following is an example module file for a labbook named myLabbook, whose module file is named myLabbook.py
. This labbook has a csv-formatted spreadsheet repository.
Example Module File
# file: python/pyLabbook/labbooks/myLabbook.py
# import the pyLabbook class
from pyLabbook import pyLabbook;
# define initialize function that takes one argument 'root'
def initialize(root):
# create an instance of pyLabbook called plb
# with desired parameters
plb = pyLabbook(
# the name or id [A-Z,a-z,0-9,_,-], no spaces!
id="myLabbook",
# the pyLabbook root path
root=root,
# path to repository file relative to pyLabbook root
repositoryPath="repositories/NewLabbook",
# format for spreadsheet files
sheetFormat="csv",
# path to database file relative to pyLabbook root
databasePath="databases",
# name of database file (includes extension)
databaseFile="myLabbook.sqlite3",
# format for database file
databaseFormat="SQLITE3",
);
# return the modified pyLabbook instance to caller
return plb;


I'm beginner in C++ and I'm working in Eclipse (MinGW Compiler) and need to make a program, sum of odd numbers that will collect only the second number.
Ex. You type 10 and then the program automatically will
2+4+6+8+10 = 30
or if you type 16
2+4+6+8+10+12+14+16 and then it'll give you the result of 72.
Somebody can help me with this ? Need to know the formula of that, I really appreciate your help guys.
Well to make it short we can see it is just 2(1+2+...+n), if you took high school math you should know summation from 1 to n is just n(n+1)/2. So we want to multiple that by 2 and make n = n / 2 as the input is a multiple of 2, we want the input to be from 1,2,..,n instead. Which turns into 2*( (n/2)(n/2+1)/2 ) along with some simplifying and clever organization you get what Bazzy has (n/4 isn't a fraction for integral types in C++).
Actually the output stream probably does get flushed when you add a newline, as well as when input is requested and when the program ends.
Having said that, it's still usually a good idea to do a std::flush before the end of the program and before requesting input (replace std::flush with std::endl if you want a newline as well).


[% page.title = "Perl 5.16.2 Release Announcement" %]
The Perl 5 development team is gratified to announce the release of Perl 5.16.2!
You can download Perl 5.16.2 from your favorite CPAN mirror or from: https://www.metacpan.org/release/RJBS/perl-5.16.2/
SHA1 digests for this release are:
674380237fa5a44447c6531e15bd3590d987e4b4 perl-5.16.2.tar.bz2
9e20e38e3460ebbac895341fd70a02189d03a490 perl-5.16.2.tar.gz
You can find a full list of changes in the file "perldelta.pod" located in the "pod" directory inside the release and on the web.
Perl 5.16.2 represents approximately 2 months of development since Perl 5.16.1 and contains approximately 740 lines of changes across 20 files from 9 authors.
Perl continues to flourish into its third decade thanks to a vibrant community of users and developers. The following people are known to have contributed the improvements that became Perl 5.16.2:
Andy Dougherty, Craig A. Berry, Darin McBride, Dominic Hargreaves, Karen Etheridge, Karl Williamson, Peter Martini, Ricardo Signes, Tony Cook.
The list above is almost certainly incomplete as it is automatically generated from version control history. In particular, it does not include the names of the (very much appreciated) contributors who reported issues to the Perl bug tracker.
Many of the changes included in this version originated in the CPAN modules included in Perl's core. We're grateful to the entire CPAN community for helping Perl to flourish.
For a more complete list of all of Perl's historical contributors, please see the AUTHORS file in the Perl source distribution.
We expect to release Perl 5.17.6 on November 11, 2012. The next major stable release of Perl 5, version 5.18.0, should appear in May 2013.


I am a self-taught developer currently living in Japan.
I have a degree in business administration and worked as a BI consultant
for 3 years in Luxembourg. I discovered a passion for programming when
creating tools for colleagues to improve their workflow. I love the idea
of solving problems with code and make the world a better place with technology.
If you're interested in getting to know me more, please do not hesitate to
contact me via the contact form or social media.


Financial year
0809
0910
1011
1112
1213
1314
1415
1516
1617
1718
1819
1920
Location code
Kolkata
Jharkhand
Durgapur
New Delhi
Nagpur
Bilaspur
Project code
47
84
161
165
168
169
Bill Serial
SRL No.
1
BILL SERIAL INSERT ENTRY
Last serial no
Bill serial no
Party code
Account code
Receipt date
Bill no
Bill date
Bill amount
Narration
Purchase order no
Purchase order date
Purchase order amount
Srl
Account code
Bill no
Bill date
Narration
Bill amount
Bill serial no


0-0-B-a
Income level (a
|
0-1-B-a
Polio vaccine(s
|
0-2-B-a
Population size
|
0-3-B-a
Years until OPV
|
0-4-B-a
Year until IPV-
|
0-5-B-a
Number of assig
|
0-6-j
Number of block
|
0-6-j
Number of block
|
0-6-j
Number of block
|
0-6-j
Number of block
|
0-6-j
Number of block
|
0-6-j
Number of block
|
0-6-j
Number of block
|
0-6-j
Number of block
|
0-6-j
Number of block
|
0-6-j
Number of block
|
0-0-B-a
Income level (a
|
0-1-B-a
Polio vaccine(s
|
0-2-B-a
Population size
|
0-3-B-a
Years until OPV
|
0-4-B-a
Year until IPV-
|
0-5-B-a
Number of assig
|
1-6-.
4
|
1-7-.
5
|
1-8-.
6
|
1-9-.
7
|
1-10-.
8
|
1-11-.
9
|
1-12-.
10
|
1-13-.
11
|
1-14-.
12
|
1-15-.
13
|


View Highscores
Time: 00
Try to answer the following code-related questions within the time limit. Keep in mind that incorrect answers will penalize your score/time by ten seconds!


Generated with Pelican. Layout done with Skeleton. Icons are Font Awesome. Hosted on S3.
© Copyright {{ AUTHOR }}, 2013 to present


What I do
For more than 5 years, have I built different digital products, which
included a lot of different technologies. Below is a overview of the many different programming
languages and technologies I have built and used. Check out my online
resume and
project portfolio for an overview over my projects.
Web Development
Most of my projects has included some sort of frontend web
development. It's because I have mainly focused on the web, and built with Electron.
Technologies
I use Git and Github almost every day
where I upload my different projects. I have a basic understanding of the NPM and Docker
environment.
Databases
I have used both SQL and NoSQL (Non SQL) databases in my projects,
where I have a basic understanding of the SQL language and MySQL structuring.
Web Libraries
As said, have I focused on the web development, and here have I used
a couple of different web libraries. Flask as a api backend and React as frontend.
Other Development
I have tried to build for different platforms. I have created a
couple of Flutter apps, as well as some Unity games, and desktop applications.
Backend Development
I have used a lot of different backend languages. Node and PHP for
web development. C# and Python for desktop, and Java for games.
UI Tools
For designing have I used 2 different softwares. Both Figma and Adobe
Xd, who looks a lot like each other. I have used Xd's prototype feature for apps.
Server Management & Serverless
I have used Firebase, which is a serverless product to all of my
apps, and I'm hosting my Lectio API over on Heroku, and tried out App Write.


To draw an ellipse or circle
- In the toolbox, click .
- Drag the pointer diagonally.
You can draw a perfect circle by holding down SHIFT while you drag.
Notes
- You can create a colored fill by clicking a fill style at the bottom of the toolbox. Click a new color in the color box to change the line color, or right-click a new color to change the fill color.
- The default background and foreground colors appear at the left in the color box. You can draw with the foreground color by clicking, or you can draw with the background color by right-clicking.
- You can undo any number of changes by clicking the Edit menu and then clicking Undo for each change.


This is my first heading!
This is my second heading!
This is my third heading!
This is some regular text.
This is the paragraph tag
This is the second paragraph
This is going to be bold text.
This is using strong which is the same as the bold tag
This is emphasized text.
- This is yellow.
- This is red.
- This is yellow.
- This is yellow.
- Sunflower
- Lemon
- Sun
- This is red.
- This is yellow.


Toggle navigation
{{selected}}
Home
Live
Events
Products
Gallery
Movies
Latest
All
Home
Live
Events
Products
Gallery
Movies
Latest
All


Perth Office
Where: 74-82 Beaufort St, Perth, Western Australia, 6000, Australia
When: Every 1st and 3rd Wednesday in the month from 11am to 1pm
Next: 6th June 2018 11am to 1pm
Notes: Entry via Auto-Doors next to Eureka Lawyers, then down the stairs and first door on the left. Coffee, Tea and Biscuits supplied. All Welcome


[§84-42] Mandatory ethics training course. All state officers and employees enumerated in section 84-41 shall complete an ethics training course administered by the state ethics commission as provided in this part. For the purposes of this part, "ethics training" includes education and training in:
(1) The ethics laws set forth in this chapter; and
(2) The lobbying laws set forth in chapter 97. [L 2004, c 198, pt of §1]


The vibrant city of Berlin is host to a great range of annual events and festivals, with everything from jazz festivals, to light shows, to film festivals. Whether you are in the city to sight-see over the weekend or on a trip for business, plan your stay right to make sure it coincides with one of these unique festivals in Berlin.
Every year, millions of visitors flock to Berlin to see the city lit by amazing illuminations. The city is majestically transformed as artistic lights are placed around landmark architecture and venues for the Festival of Lights (Berlin Leuchtet). The festival aims to tell stories and draw attention to unique, hidden and essential spots in Berlin. The Festival of Lights is one of the largest festivals of its kind in the world.
Since 2015, the World Championship of projection mapping has been a permanent feature. Head to the Kohlhoff Tower at the Potsdamer Platz to witness some of the world's most talented video mapping artists compete against each other.
Towards the end of autumn, the city of Berlin turns in to a hub for fans of jazz from around the world. For 44 years the Jazzfest Berlin (Berlin Jazz Festival) has been held in a variety of locations around the city. It showcases the diverse talents of international jazz musicians and ensembles. The popular Jazzfest Berlin takes place from November 5 to November 8 and this year it will go partly off-stage, with artists and cultural workers sharing online projects.
The Berlin International Film Festival, also known as the Berlinale, has become one of the most important international film festivals, second after Cannes'. Taking place in February every year, it features over 400 films, has sold over 335,000 tickets, and welcomes nearly 20,000 professional visitors from 127 countries. Access the full programme as of January, and plan ahead for your next stay at Radisson Blu Berlin as this is a very popular event.
The diversity of Berlin is celebrated every May at the Karneval der Kulturen (Carnival of Cultures). This 4 day urban festival shows the many faces of Berlin with its free and open programme of events. Throughout the Carnival, visitors can celebrate cultural and ethnic diversity with a range of events around Blücherplatz. There are hundreds of market stalls with tasty food, traditional craft, art and gifts, local and international bands performing, and street performers showing their skill.
More than one hundred artists on the biggest theatre stage in the world. With half a million guests every year, the Palast is the #1 theatre in Berlin.It is the first choice for one wishing to experience utterly unique and thoroughly fascinating
Know MoreThe Aquarium Berlin in Berlin is one of Germany's largest aquariums. The aquarium was built in 1913 as part of the Berlin Zoological Garden complex.The Aquarium has been ranked among the public aquariums with the world’s greatest biodiversity.
Know MoreAn enormous, life-size panorama, known as THE WALL, to recreate life on both sides of the notorious Berlin Wall, which divided the city for almost 30 years, on an imaginary autumn day.Seen from atop a 13-foot and learn about life in the shadow of the Wall at a photo exhibition too.
Know More


Basic Attention Token
Introducing blockchain based digital advertising
Introducing blockchain based digital advertising
From the creator of JavaScript and the co-founder of Mozilla and Firefox, with a solid team – funded by Founders Fund, Foundation Capital, Propel Venture Partners, Pantera Capital, DCG, Danhua Capital, and Huiyin Blockchain Venture among others.
Basic Attention Token radically improves the efficiency of digital advertising by creating a new token that can be exchanged between publishers, advertisers, and users. It all happens on the Ethereum blockchain.
The token can be used to obtain a variety of advertising and attention-based services on the BAT platform. The utility of the token is based on user attention, which simply means a person’s focused mental engagement.


| Name: mast.sai Krishna ashwin | Reg No: 5-11SMHC17 |
|---|---|
| Age / Sex:6/m | Contact No: |
| Marital Status:na | Date: |
| Occupation:1st std | Dr. |
| Address: | DIAGNOSIS- |
FROM MORNING SEVERE COLD AND COUGH SUDDEN IN THE MORNING. FROM LAST YEAR FREQUENTLY FALLING SICK COLD AND COUGH. VERY SENSITIVE TO COUGH COLD. ALMOST EVERY 15 DAYS FACING THIS PBM. ?PERIODICAL.
RUNNING NOSE THEN NB, IF GIVES COLD MED CONTINUES IN THE MIDNIGHT LIKE A WHEEZE. (BREATHING DIFF). AMEL HOT DRINK WATER MILK FEELS BETTER THEN.
DOESN’T LIKE MILK. FORCEFULLY DRINKS WITH SOME FLAVOR.
DRINKS LESS WATER. MUST TELL HIM TO GO PASS.
LIKES CURD A LOT.
GREENISH MUCUS WITH STEAM ONLY OTHERWISE TOUGH TO BRING OUT.<MIDNIGHT, EARLY MORNING 3-4-5 AM.
ANGER. REPEATS THE SAME.
RX:
NUX VOM 200 – 4-4-4-4-4
ARS 200+ACON200 – 4PILLS 2 HOURLY.
NAT SULPH 6X 4-4-4-4
18/11/17: mild ear pain. mng 4-5 am had cough. Activity good. Better in eating.
Rx: bell 200 – 4 pills sos – 1 dram bottle.
18/11/17: FATHER: Mng onwards severe throat pain then cold. Running nose. >hot water.
Throat clear. Tongue moist.
Rx:
hep sulph 200 – qid
Gelsimuium 200 – qid
2/12/17:
9pm onwards suddenly fever started. Pain in the right chest region. Shivering also. Dry lips redness during fever. Otherwise he is thirstless. Pulse is weak. beats if contradicted normally.
Rx:
Acon 1m+bell1m+bryonia1m - 4 pills 2 hourly.
Ferr.phos 12x 4-4-4-4-4.


csic.iiia.ftl.base.core
Classes
AnnotatedPath
BaseOntology
Disintegration
FeatureTerm
FloatFeatureTerm
FTAmalgam
FTAntiunification
FTKBase
FTRefinement
FTUnification
IntegerFeatureTerm
Ontology
Path
SetFeatureTerm
Sort
Symbol
SymbolFeatureTerm
TermFeatureTerm


{{ (chain$ | async)?.owner?.name }}
{{ (chain$ | async)?.owner?.location }}
Timestamp: {{ block?.timestamp | date: "M/d/yy, HH:mm" }}
Issuer: {{ block.issuer }}
new Owner: {{ block.newOwner }}
Product: {{ block.data }}
Product ID: {{ block.dataID }}
Amount: {{ block.amount }}
Value: {{ block.value }}
Previous Hash: {{ block.prevHash }}
Hash: {{ block.hash }}


Preparation time
less than 30 mins
Cooking time
10 to 30 mins
Serves
Serves 1
For the chicken livers, wipe the livers with kitchen paper, then coat them with the flour and shake off any excess.
For the ciabatta cubes, heat the oil in a frying pan and fry the ciabatta cubes until crisp and golden-brown. Set aside in a bowl.
In the same pan, melt the butter and fry the bacon lardons until crisp and golden-brown. Remove the bacon from the pan and transfer it to the bowl, leaving the remaining fat in the pan.
Add the chicken livers to the pan and fry for 1½ minutes on each side, or until golden-brown and completely cooked through. Add the livers to the bowl with the ciabatta cubes and bacon, season with salt and freshly ground black pepper and mix well.
For the dressing, place the oil and mustard into a bowl and whisk together until thickened. Add the lemon juice, garlic and honey. Season, to taste, with salt and freshly ground black pepper and mix well.
Add the herbs to the bowl with the dressing and stir well to coat the leaves.
To serve, place the dressed herbs onto a plate with the chicken livers, bacon and ciabatta cubes on top.


WebSocket specific session properties
Exclude from WebSocket
This allows you to manage the URLs where WebSocket communication is not processed in ZAP.
Although all messages from excluded URLs are forwarded, nothing is stored nor can you view them in the user interface.
This feature is useful for high volume, performance critical WebSocket connections.
You can differentiate on the port for one given domain, by using e.g.: example.com:443 to exclude WebSocket connections from example.com only on port 443.


Alogrithm Version:
V1
V2
Transformation Type:
FFT1D
FFT2D
DCT
FastDCT
Grayscale Type:
NONE
AVG
LUMA
LUMA_II
DESATURATION
MAX_DE
MIN_DE
MID_DE
R
G
B
Block Size:
Copy Size:
Tolerance:
1-5000
Web Compatibility:
Uses OffscreenCanvas
Uses createImageBitmap
Ethereum is the community-run technology powering the cryptocurrency ether (ETH) and thousands of decentralized applications.
Encode
Decode


John James Doe, Jr.
60yrs Hispanic Male
DOB: 2/24/1954
Medications / indication:
- Lexapro 20 mg PO daily Depression
- Aspirin 81mg PO daily Heart Health
- Hydrochlorthiazide 12.5mg PO daily Hypertension
- Levitra 10mg PO daily Erectile Dysfunction/Prostate Hypertrophy
- Methotrexate 3.3 mg/m^2 IM 2x/wk PRN Lupus Flare Lupus
- Sumitriptan 6 mg SQ x1, may repeat dose after 1 hour Cluster Headache
Past Medical History
- Hypertension
- Diabetes - Type II
- Obesity
- History of Recurrent Depression
- Erectile Dysfunction
- Lupus
- Endocarditis
- Cluster Headaches
- Impetigo
- Colon Polyps
- Prostate Hypertrophy
- History of Rubella
- Post Traumatic Stress Disorder
- Low Back Pain
Past Surgical History
- Apendectomy 2002 (Mercy Medical Center, Iowa City, IA)
- Colonoscopy 2011 (St. Lukes, Cedar Rapids, IA)
- Cholecystechtomy 2001 (St. Lukes Cedar Rapids, IA)
- Bowel Resection 1999 University of Iowa, Iowa City, IA)
Family History
Social History
- Brick Layer
- Married
- Education: Some College
- Former Smoker—1 PPD x 25 years
- Alcohol Use—Occasional
- Denies illicit drug use
- Exercise: No
- Diet: Vegetarian
- Military: Vietnam War—Honorably Discharged
- Travel: None Recent
- Venereal Diseases: None
Immunizations
- Influenza 2013
- Influenza 2014
- Zoster- 2012
- Pneumonia 2009
Emergency
- Code Status: DNR
- Blood Type: 0+
- Organ Donor: Yes
- Language: Spanish, English
- Religious Preference:
- Jehovah Witness
- Power of Attorney (POA):
- Name: Jacob Doe (Son)
- Living Will: No
Allergies/Reaction
Physician
Catherine Hansen, DO
North Liberty Family Clinic Center
1200 Delaney Court
North Liberty, IA 52317
Phone:<PHONE_NUMBER>
Fax:<PHONE_NUMBER>
Pharmacy
Walgreens
1200 Delaney Court
North Liberty, IA 52317
Phone:<PHONE_NUMBER>
Fax:<PHONE_NUMBER>
Insurance
- Blue Cross Blue Shield of Alabama
- Medicare
- Dental—Delta Dental
- Eye—VSP
- Auto: Progressive
- Life: Northwestern


If you'd like to convert your SVG icon font into a TTF, WTOF or EOT use any of these free svg font convertors.


hey i am from germany and if i watch my profile i see wrong things! my k/d is
x.xx
and my score is
xx,xxx,xxx
!!! i mean the symbol between the "x" which I use here for the numbers.
The problem is: in germany we use decimal point: "," for numbers like "i am exactly 1,8000189 meters tall",
and points: "." for "my new house costs 1.000.000 €".
hope you can understand me and i know, you guys can fix this :)
BrainFooLong
Administrator
That is absolutely no point of BBLog.
Goto DICE Support for this issue.
ORFK
Global Moderator
And in Switzerland we use . for 1.8451 and ' for my house costs 1'000'000 Fr.
And in Austria they have again a few other rules.
so however, this is something with DICE have decided, thats so small think thats nobody is intressted in this detail. i think here is nothing needed to be fixed.


Left Nav
Try it out!
UPCOMING EVENTS
10/17
11:24 am
Delete Snapshot
CA3-DNS-01
10/21
07:33 am
Delete Snapshot
WA1-DEMO-01
RECENT ACTIVITY
Tuesday Sep 29
-
Password change for user trent.andersonPassword change for user trent.anderson by systemsystem
Tuesday Sep 29
-
Password change for user trent.andersonPassword change for user trent.anderson by systemsystem


Date: May 23, 24 2003
Time: 11:40-12:10
Location: USA, Illinois just south of Chicago
Half an hour ago I had a really F'd up encounter with the police. I was driving home from chillin with my buds when I saw the right lane of traffic was blocked by a police officer.  I had been going the speed limit, moving with the flow of traffic on a fairly busy road, (U.S. Route 52, Joliet IL) nothing was wrong with my car.
What was wrong however was that I was really high, and had most of a 30 pack in my trunk, along with four joints in my cupholder. I'm 17 so its illegal to possess any alcohol. Weed is obviously illegal. There was an empty on the floor, so I kicked it under my seat.
My heart was racing like that guy in 'The Telltale-Heart' when the cop said that this was a Driver Safety Inspection. He asked for my license and registration, while giving my car a good look-over, moving around to see in my back seat.
I was driving on a ticket so I gave it to him and got my insurance stuff out of my glove box. Thank God I didn't stash anything there. The cop left and I was alone for about 10 minutes (11:49~12:00)
It occurred to me that this was a huge breach of my civil rights, but it also occurred that the more contact with the police I made, the bigger the chance that theyd see my cashed-out eyes. I didn't know if he had seen them and was getting a k9 unit right then.  The pig gave me back my ticket and let me go.
As I approached the officer who gave me my ticket back I could see inside one of the huge task force things, and I saw TVs with pictures of all the surrounding area, including a view on another person waiting in her car. I could see her there perfectly, and if she had tried to hide anything she would have been caught on tape. I had fingered a roach in my pocket, and had thought of hiding it, but thought better of it, thank God again. :) (and I'm not even that religious)
This sting type thing was way more sophisticated than anything you'd see on COPS. This was like the really high tech stuff you see on a movie. I can't believe that our country would allow such invasion of privacy, and such an ineffective one at that.  Dont ever talk to the police more than u need 2 even if ur rights are being violated, send a letter instead. Dont freak out and suspect they 'know' u have drugs and are loaded or anything (I did a little of this). Stay safe and outta jail. peace
Experience Reports are the writings and opinions of the individual authors who submit them.
Some of the activities described are dangerous and/or illegal and none are recommended by Erowid.


Hi my name is Honey Sanghani and I am Information and Communication Technology Engineer.I completed my Bachelor's from L.J Institute of engineering and technology in Gujrat, India. Last year me and family moved to canada and currently I am living in Brandon Mb.Currently I am entrolled in University of Toronto continuing studies Bootcamp for Full Stack development.My hobby is to sketch and explore new food to eat. In my free time I like to watch Si-Fi Tv shows and I am a Marvel fan.Well as a child I just don't want to stop learning and stop creating because getting creative is what I love and what I want to do.Programming is exactly the thing I want in my life as you can learn as much you can , create what ever you want, design constantly and get creative everyday.There is no end, so here I am improving myself and making my own world.
Horiseon is a webpage for marketing agency which has a codebase that follows accessibility standards so that website is optimized for search engines.It has three section such as search engine optimization, online reputation management and social media marketing also it has a benefits section.I was given this project to refactor the code according to the webpage criteria.
Run Buddy, a service that lets runners sign up for personal training and helps them to stay fit.As a part of Bootcamp we where taught how to make a simple landing page using HTML and css. Also how to make a responsive website which works on different size devices.This website has various section and information about Run Buddy also have a privacy policy page ,form and contact page.
comming soon!


Building connections and providing peer support between SMS and HHS
Are you a Homestead student interested in working with students from Sunnyvale Middle School? Apply now to join the team as a Peer Mentor!


Royal Flush
"Stats don't bluff"
Registration Form
(required *)
*
First name:
*
Last name:
*
Email Address:
*
Password:
*
Password Confirm: