One of the reported problems with using an IRL.gpx record is; there are a lot of inconsistencies in the record of altitude vs time, so you get a number of spikes and dips which result in sudden changes to resistance on the trainer which is unpleasant to ride. You can use a route gpx instead and assign an average speed to each record but that gives an unrealistic effort pattern to compare against.
The above graph was produced by a tool called gpxsmoother. The blue line is the original IRL.gpx file from Strava and the green line is the workout friendly IRL smoothed.gpx
You then take the IRL smoothed.gpx and load it into a tool called gpx-to-zwift-workout, which produces a a IRL.zwo file (Zwift workout file format) you then insert this file into Documents/zwift/workouts/.
The method of doing this is also explained in real-world-to-zwift-workout.
After loading it into Zwift and trying it out on the trainer I observed a couple of things that are worth noting.
1) This example IRL ride is two hours long, and although this representation is realistic it is a bit long for my attention span on Zwift. There is a lot of idling below 150W for my liking. However there is a large chunk in the middle of the workout in green (<150W) that can be removed and still preserve the essence of the ride. The problem if you remove this is you will not return to the same height as you started.
2) The intensity is normally set by default to your ftp which is stored within Zwift. The first time I ran this the hill peak was a bit too easy. It normally takes me all my short term watts to get over the summit about 225W at least for 4 minutes.
The results from Strava before adjusting the ftp to 211W



