Do the fme ultra slims feature a string searcher ??? :0 ....
Creating an Object Detector for identifying Donald Trumps Hair.
Description: Using FME to prep and build a dataset for training an Object Detector to recognize Donald Trumps Hair. FME will create inputs for tensorflow/machine learning for object detection using an Single Shot Multibox Detector (SSD) with Inception V2 model.
I will post all of the files once it is completed, within the next couple of days.
Cheers,
Doug
Midwest Region Road Conditions
Description: Many State DOT Traveler Information websites believe that people only drive in their state and don't provide inter-state information in regards to road conditions or traffic incidents. These workspaces were put together to show how useful it is to have data from surrounding states in one common application. Luckily many of the states that I pulled have an easy to use API (and more importantly people that were willing to provide access to their APIs) that I was able to easily integrate. Obtaining access to the data feeds is a struggle in today's world of people and agencies wanting to keep their data closed by not sharing or requiring that developers go through a ridiculous complex process of obtaining a token key.
Workspaces of how I pull the data can be found here (minus some of the credentials/token keys that can be easily obtained).
Live Feature Collection or Live Feature Service (Please use these production quality feeds for inspiration or integration into other projects!)
See the layer live on our TrackaPlow application (powered by ArcGIS Online services that are updated every 3-5 minutes with FME Server!)
Finally a shout out to the SAFE Software staff for developing this awesome contest. Hopefully it will become an annual contest/tradition and encourage further sharing of interesting new ideas - and workspaces!
PolygonEliminator
A Custom Transformer that eliminates candidate polygons by dissolving them into an adjacent base polygon. The choice of adjoining polygon is based on area (largest or smallest) or edge length (longest or shortest) that does not cross a breakline. With optional fuzzy tolerance and group-by this transformer gives more fine grained control than the SliverRemover, but does not eliminate gaps.
Pro Tip: You can create candidate polygons for gaps by using the AreaOnAreaOverlayer with the input data+ BoundingBoxAccumulator.
polygoneliminator.fmx
PolygonEliminator
A Custom Transformer that eliminates candidate polygons by dissolving them into an adjacent base polygon. The choice of adjoining polygon is based on area (largest or smallest) or edge length (longest or shortest) that does not cross a breakline. With optional fuzzy tolerance and group-by this transformer gives more fine grained control than the SliverRemover, but does not eliminate gaps.
Pro Tip: You can create candidate polygons for gaps by using the AreaOnAreaOverlayer with the input data+ BoundingBoxAccumulator.
polygoneliminator.fmx
This is just for fun, I'm not eligible for the contest due to residency.
GeoGeek Xmas Shopping List Generator
Description: Input a space delimited list of the GeoGeeks you need to shop for and get a handy shopping list that tells you if they should get Beer, Wine, FME Socks or Coal. (Hey who really needs anything other than that!) Uses a random number generator and attribute manager to conditionally map the number to a gift.whatdoigetmyfavgeogeek4xmas.fmw
A title. The FlexNetAnalyser.
A brief description. "On the 12th day of Christmas my true love gave to meeee... a divorce for spending too much time with FME."
Every now and again I'm asked to help someone work out what their Esri, FME or Autodesk license utilisation is. Or, and this is usually with a level of urgency in their voice they want to know, "who's hogging MY floating license right now!". I've several times built workspaces that were variations on this theme but always resolved to build something a little more generic, something that could get detail out of several types of license server and answer these questions in a more structured way. So, it seems like a Christmas hackathon is the best time to have a quick crack(er) at it...So, the FlexNetAnalyser is step 1 along the road to a Custom Transformer FME Hub submission. In the new year and with a bit of feedback from the community I'll whip it into shape for 2018.
The FlexNetAnalyser is able to analyse a FlexNet license server (FME, Esri, Autodesk etc) and will output the current users who have a license checked out and it will also highlight the total license count checked out per license type.
Output Ports:
LicenseTypeCount - A tabular structure designed to be output on a schedule at a regular interval to a database or spreadsheet so that analysis can be done on license use peaks and troughs, perhaps using structured queries or more likely with some form of dashboard. In the structure:
date, time, fme, oracle
20171207, 10:21, 1, 1
CurrentLicenseUsers - One feature per user with a license checked out, designed to be sent to a dashboard or HTML page so that the individual or machine blocking a license can be identified (and perhaps neutralised, as humanely as possible). In the structure:
license, allocated, host, user
"FME" v1.0, vendor: safe, expiry: 30-sep-2018, Start Thu 12/7 22:32, SLEIGH1, Dancer
"FME" v1.0, vendor: safe, expiry: 30-sep-2018, Start Thu 12/7 22:01, SLEIGH2, Rudolf
Both output ports include schema features so that they can be hooked up to a Dynamic FeatureType and your work is done. Alternatively the AttributeExposer will need to be used after the LicenseTypeCount port in order to expose and then manipulate the license type count columns based on the FlexNet license server that you are analysing. For example for an FME license server it would be fme, oracle etc and for an Esri license server, editor, publisher, viewer, arc/info etc.
Blatant heart string tug for votes:
Merry Christmas from the FlexNetAnalyser Puppy!
A file containing your project demo or result.
flexnetanalyser.fmx
a) A title. FME blog scraper.
b) A brief description. This workspace was created to scan FME blog and extract metadata, like author, date, category, post url and text preview. The result will be saved to Excel file.
c) A file containing your project demo or result. fme-blog-reader.fmwt
Creating an Object Detector for identifying Donald Trumps Hair.
Description: Using FME to prep and build a dataset for training an Object Detector to recognize Donald Trumps Hair. FME will create inputs for tensorflow/machine learning for object detection using an Single Shot Multibox Detector (SSD) with Inception V2 model.
I will post all of the files once it is completed, within the next couple of days.
Cheers,
Doug
I would love to see the result!
Title:
The ColorConverter custom transformer.
Description:
Sometimes it's necessary to convert colors from one notation to another and sometimes it's necessary to do that for a lot of colors at a time (like that one time where I had to transform a bunch of CMYK colors from a printed map into Web RGB to use them in a SLD). I've built a custom transformer that handles this. Currently it supports the following color models:
- FME (RGB triplet in range 0..1)
- RGB (RGB triplet in range 0..255
- Web RGB (a 6-character hexadecimal string containing an RGB triplet in range 00..FF)
- CMYK (in ranges 0..1 and 0..100)
With that I can confirm that my Evil Duckie is 1,0,0 or 255,0,0 or #FF0000 or 0,1,1,0 or 0,100,100,0
(since I can't compete with @1spatialdave's puppy...)
File containing my submission:
https://hub.safe.com/transformers/colorconverter
Note that especially the conversion from RGB to CMYK color space is a bit of a dark art since the two color models don't actually cover the same colors. Under the hood it all gets converted to an FME color first before heading out to the desired output format (much like how FME works), a to-do item would be for any conversion between the two CMYK flavors to skip that step. I would also like to add HSV and HSL or even Pantone.
Title:
The ColorConverter custom transformer.
Description:
Sometimes it's necessary to convert colors from one notation to another and sometimes it's necessary to do that for a lot of colors at a time (like that one time where I had to transform a bunch of CMYK colors from a printed map into Web RGB to use them in a SLD). I've built a custom transformer that handles this. Currently it supports the following color models:
- FME (RGB triplet in range 0..1)
- RGB (RGB triplet in range 0..255
- Web RGB (a 6-character hexadecimal string containing an RGB triplet in range 00..FF)
- CMYK (in ranges 0..1 and 0..100)
With that I can confirm that my Evil Duckie is 1,0,0 or 255,0,0 or #FF0000 or 0,1,1,0 or 0,100,100,0
(since I can't compete with @1spatialdave's puppy...)
File containing my submission:
https://hub.safe.com/transformers/colorconverter
Note that especially the conversion from RGB to CMYK color space is a bit of a dark art since the two color models don't actually cover the same colors. Under the hood it all gets converted to an FME color first before heading out to the desired output format (much like how FME works), a to-do item would be for any conversion between the two CMYK flavors to skip that step. I would also like to add HSV and HSL or even Pantone.
Title:
The VertexAngleCalculator custom Transformer
Brief description:
A Transformer that, given an Area or Line feature, calculates the directional change at each vertex. Output is available as both a measure on the original feature, or as seperate vertices containing the angles as attributes.
A file containing your project demo or result:
An entry on the FME Hub.
I love doing these kinds of calculations on geometry, and I had already researched the required steps once before. Seems rude not to try it in FME and to share it with others. I originally needed the angles to determine whether a polygon was clockwise or counterclockwise.
Since I can't compete with a puppy, here's a typical Dutch winter scenery of enthousiastic folk going to work:
Title:
The VertexAngleCalculator custom Transformer
Brief description:
A Transformer that, given an Area or Line feature, calculates the directional change at each vertex. Output is available as both a measure on the original feature, or as seperate vertices containing the angles as attributes.
A file containing your project demo or result:
An entry on the FME Hub.
I love doing these kinds of calculations on geometry, and I had already researched the required steps once before. Seems rude not to try it in FME and to share it with others. I originally needed the angles to determine whether a polygon was clockwise or counterclockwise.
Since I can't compete with a puppy, here's a typical Dutch winter scenery of enthousiastic folk going to work:
A title.
Spatial Search and Clipping on Terrain Model Stored in DB
A brief description.
This is a part of a big project whose goal is to develop a database system to store a bunch of 3D datasets including terrain surface models, BIMs, and point clouds. Regarding terrain models, the major requirements are:
- The system should allow the user to perform spatial search any part of stored surfaces.
- The system should clip the found surface by an area which the user specified for searching.
- The original surface could have a texture appearance, and the system should restore the texture on the clipped surface.
A file containing my project demo.
The attachment contains two workspaces and a sample data, which demonstrate how FME works to handle terrain models according to the requirements. The workspace "load.fmw" loads the sample data to a SpatialLite database, and the workspace "extract.fmw" performs spatial search and clipping. Firstly run the "load.fmw" to create the SpatiaLite database before running "extract.fmw".
load-and-extract-terrain-surface.zip (created with FME 2017.1.1.1)
Left: Sample Data, Right: Spatial Search and Clipping Result
A title.
Spatial Search and Clipping on Terrain Model Stored in DB
A brief description.
This is a part of a big project whose goal is to develop a database system to store a bunch of 3D datasets including terrain surface models, BIMs, and point clouds. Regarding terrain models, the major requirements are:
- The system should allow the user to perform spatial search any part of stored surfaces.
- The system should clip the found surface by an area which the user specified for searching.
- The original surface could have a texture appearance, and the system should restore the texture on the clipped surface.
A file containing my project demo.
The attachment contains two workspaces and a sample data, which demonstrate how FME works to handle terrain models according to the requirements. The workspace "load.fmw" loads the sample data to a SpatialLite database, and the workspace "extract.fmw" performs spatial search and clipping. Firstly run the "load.fmw" to create the SpatiaLite database before running "extract.fmw".
load-and-extract-terrain-surface.zip (created with FME 2017.1.1.1)
Left: Sample Data, Right: Spatial Search and Clipping Result
Title: Create map with index
Description:
The ‘IndexMap’ Transformer was developed to automate
the process of producing a map with an associated Index. This workspace work
with points, lines and polygon features and can be used in any hemisphere in
the world - NE, NW, SE, SW.
There are two links on the FME HUB
Canada (Vancouver Parks)
Associated Index
Australia (Canberra Roads)
Associated Index
Output to Google Earth
Regards
Greg Patterson
Not long now before the closing date. Don’t get so absorbed in your project that you miss the deadline!
I love this idea, but at this moment I don't have the time to participate.
Maybe next year.
A title. The FlexNetAnalyser.
A brief description. "On the 12th day of Christmas my true love gave to meeee... a divorce for spending too much time with FME."
Every now and again I'm asked to help someone work out what their Esri, FME or Autodesk license utilisation is. Or, and this is usually with a level of urgency in their voice they want to know, "who's hogging MY floating license right now!". I've several times built workspaces that were variations on this theme but always resolved to build something a little more generic, something that could get detail out of several types of license server and answer these questions in a more structured way. So, it seems like a Christmas hackathon is the best time to have a quick crack(er) at it...So, the FlexNetAnalyser is step 1 along the road to a Custom Transformer FME Hub submission. In the new year and with a bit of feedback from the community I'll whip it into shape for 2018.
The FlexNetAnalyser is able to analyse a FlexNet license server (FME, Esri, Autodesk etc) and will output the current users who have a license checked out and it will also highlight the total license count checked out per license type.
Output Ports:
LicenseTypeCount - A tabular structure designed to be output on a schedule at a regular interval to a database or spreadsheet so that analysis can be done on license use peaks and troughs, perhaps using structured queries or more likely with some form of dashboard. In the structure:
date, time, fme, oracle
20171207, 10:21, 1, 1
CurrentLicenseUsers - One feature per user with a license checked out, designed to be sent to a dashboard or HTML page so that the individual or machine blocking a license can be identified (and perhaps neutralised, as humanely as possible). In the structure:
license, allocated, host, user
"FME" v1.0, vendor: safe, expiry: 30-sep-2018, Start Thu 12/7 22:32, SLEIGH1, Dancer
"FME" v1.0, vendor: safe, expiry: 30-sep-2018, Start Thu 12/7 22:01, SLEIGH2, Rudolf
Both output ports include schema features so that they can be hooked up to a Dynamic FeatureType and your work is done. Alternatively the AttributeExposer will need to be used after the LicenseTypeCount port in order to expose and then manipulate the license type count columns based on the FlexNet license server that you are analysing. For example for an FME license server it would be fme, oracle etc and for an Esri license server, editor, publisher, viewer, arc/info etc.
Blatant heart string tug for votes:
Merry Christmas from the FlexNetAnalyser Puppy!
A file containing your project demo or result.
flexnetanalyser.fmxInteresting.
I recommend better error catching if there is an invalid port. Currently it is
2017-12-11 15:09:53| 0.6| 0.0|WARN |Python Exception <TypeError>: Input must be a string or unicode.
2017-12-11 15:09:53| 0.6| 0.0|WARN |Traceback (most recent call last):
File "<string>", line 98, in close
File "<string>", line 23, in throw
TypeError: Input must be a string or unicode.
2017-12-11 15:09:53| 0.6| 0.0|FATAL |f_70(PythonFactory): PythonFactory failed to close properly
2017-12-11 15:09:53| 0.6| 0.0|ERROR |f_70(PythonFactory): A fatal error has occurred. Check the logfile above for details
I would also be very interested in checking all the licences on a specific server in one shot, or at least all the licences for a specific version of flexlm. (We have 6 software requiring 3 versions of flexlm on the same license server)
A title. The FlexNetAnalyser.
A brief description. "On the 12th day of Christmas my true love gave to meeee... a divorce for spending too much time with FME."
Every now and again I'm asked to help someone work out what their Esri, FME or Autodesk license utilisation is. Or, and this is usually with a level of urgency in their voice they want to know, "who's hogging MY floating license right now!". I've several times built workspaces that were variations on this theme but always resolved to build something a little more generic, something that could get detail out of several types of license server and answer these questions in a more structured way. So, it seems like a Christmas hackathon is the best time to have a quick crack(er) at it...So, the FlexNetAnalyser is step 1 along the road to a Custom Transformer FME Hub submission. In the new year and with a bit of feedback from the community I'll whip it into shape for 2018.
The FlexNetAnalyser is able to analyse a FlexNet license server (FME, Esri, Autodesk etc) and will output the current users who have a license checked out and it will also highlight the total license count checked out per license type.
Output Ports:
LicenseTypeCount - A tabular structure designed to be output on a schedule at a regular interval to a database or spreadsheet so that analysis can be done on license use peaks and troughs, perhaps using structured queries or more likely with some form of dashboard. In the structure:
date, time, fme, oracle
20171207, 10:21, 1, 1
CurrentLicenseUsers - One feature per user with a license checked out, designed to be sent to a dashboard or HTML page so that the individual or machine blocking a license can be identified (and perhaps neutralised, as humanely as possible). In the structure:
license, allocated, host, user
"FME" v1.0, vendor: safe, expiry: 30-sep-2018, Start Thu 12/7 22:32, SLEIGH1, Dancer
"FME" v1.0, vendor: safe, expiry: 30-sep-2018, Start Thu 12/7 22:01, SLEIGH2, Rudolf
Both output ports include schema features so that they can be hooked up to a Dynamic FeatureType and your work is done. Alternatively the AttributeExposer will need to be used after the LicenseTypeCount port in order to expose and then manipulate the license type count columns based on the FlexNet license server that you are analysing. For example for an FME license server it would be fme, oracle etc and for an Esri license server, editor, publisher, viewer, arc/info etc.
Blatant heart string tug for votes:
Merry Christmas from the FlexNetAnalyser Puppy!
A file containing your project demo or result.
flexnetanalyser.fmxThe workspace is password-protected?
The 12 days of xmas generator
Workspace that generates the lyrics for the song and uses the system speech synthesizer to "sing" it out on your loudspeaker. A guaranteed hit at the family dinner!
Workspace: 12daysofxmas.fmw
Output: 12 day of xmas.mp3 (Dropbox link, the forum didn't like my mp3)
Requirements:
If you don't want to install anything and just want to play around, simply disable the PythonCaller at the end.
Ho ho ho and happy holidays!
The 12 days of xmas generator
Workspace that generates the lyrics for the song and uses the system speech synthesizer to "sing" it out on your loudspeaker. A guaranteed hit at the family dinner!
Workspace: 12daysofxmas.fmw
Output: 12 day of xmas.mp3 (Dropbox link, the forum didn't like my mp3)
Requirements:
If you don't want to install anything and just want to play around, simply disable the PythonCaller at the end.
Ho ho ho and happy holidays!
Title:
FME Santa Nose based Air Quality Index for Chennai, India
Description:
If you ever thought that Santa
Claus was old fashioned and not tech savvy?
You got it wrong, at least this
Christmas season and not atleast the FME powered Santa
Claus.
With the nose as his IoT device
(real time air quality sensor) doubling up as an indicator, this FME Santa
Claus is all geared up to indicate in real time, if it is safe to wander around
the city this Christmas season.
SaintGIS has been helping FME
Santa learn a bit of FME to perform a trick or two this season, ever since the
FME hackathon was announced.
FME Santa has learnt:
1.
To consume real-time air
quality data from the federal government open data portal web services api in
xml format
2.
Source: https://data.gov.in/resources/real-time-air-quality-index-various-locations
3.
Filter the data for places of interest he will be visiting.
4.
Flatten the xml and generate real time reports on air quality
Well
these html reports are unique to FME Santa, for it has his magical touch.
Yes, the reports for a key
location ( https://goo.gl/maps/jEX7YvijHjG2 )
in the city of Chennai, India; not only contain real time tabular data on the
prominent pollutants but also a colour changing image of FME Santa to
graphically indicate the real time air quality of that place.
FME Santa's own nose and beard
are the IoT sensors and displays.
They change colours to display
the air quality in real time.
Very nice of FME Santa to have
lent his nose for a noble social and environmental cause.
FME Santa wants to add a word for
improvement that the html report can be made dynamic by scheduling the
workspace using FME Server.
Attached is the FME Workbench
template, a sample output html report and the screen grab of the html report
iot-fme-santa-sensornose-srg.fmwt
santaclaus-iot-nosesensor-realtimeairqualityindex.htm
Title:
FME Santa Nose based Air Quality Index for Chennai, India
Description:
If you ever thought that Santa
Claus was old fashioned and not tech savvy?
You got it wrong, at least this
Christmas season and not atleast the FME powered Santa
Claus.
With the nose as his IoT device
(real time air quality sensor) doubling up as an indicator, this FME Santa
Claus is all geared up to indicate in real time, if it is safe to wander around
the city this Christmas season.
SaintGIS has been helping FME
Santa learn a bit of FME to perform a trick or two this season, ever since the
FME hackathon was announced.
FME Santa has learnt:
1.
To consume real-time air
quality data from the federal government open data portal web services api in
xml format
2.
Source: https://data.gov.in/resources/real-time-air-quality-index-various-locations
3.
Filter the data for places of interest he will be visiting.
4.
Flatten the xml and generate real time reports on air quality
Well
these html reports are unique to FME Santa, for it has his magical touch.
Yes, the reports for a key
location ( https://goo.gl/maps/jEX7YvijHjG2 )
in the city of Chennai, India; not only contain real time tabular data on the
prominent pollutants but also a colour changing image of FME Santa to
graphically indicate the real time air quality of that place.
FME Santa's own nose and beard
are the IoT sensors and displays.
They change colours to display
the air quality in real time.
Very nice of FME Santa to have
lent his nose for a noble social and environmental cause.
FME Santa wants to add a word for
improvement that the html report can be made dynamic by scheduling the
workspace using FME Server.
Attached is the FME Workbench
template, a sample output html report and the screen grab of the html report
iot-fme-santa-sensornose-srg.fmwt
santaclaus-iot-nosesensor-realtimeairqualityindex.htm
Using Santa's nose as an indicator: priceless!
Santa's trip around the world!
This Workbench connect to the API of Openstreet Map.
- It queries all the Christmas related features of OSM input by users like me!
- It creates a path between all the trees
- It creates a Web page to display the result using Leaflet
xmas.fmw