A word of caution. Be careful when using the projlib for datum transformations from one EPSG code to another. What it does and what you want it to do arn't always the same thing, and might be different than the right thing. I have 3 issues.
- The EPSG database can be a garbage pile.
- If it's missing support files (like grid shift files and geoid files) it may resort to a different strategy without notifying the user.
- Some SRS are incomplete. This means the datum transformation is ambiguous.
Your objective is a good example. EPSG:22208 is missing information. NAD83CSRS requires an epoch. Is it 1997, 2002, 2010 or something custom? So does WGS84. Is it WGS84 original (WGS84 orig ~ NAD83 orig) or is it one of the G series? Neither EPSG code states for either. Do you even know what your target realization and epochs are? They are required information.
If the officially supported transformation requires a grid shift file (probably not for your case) whether the library executes the intended behaviour is dependent on having the necessary support files in the right location. If you have your computer configured, you can get an idea of what is going to happen in a transformation by using projinfo. On my computer:
projinfo -s EPSG:22208 -t EPSG:32608
Candidate operations found: 1
Note: using '--spatial-test intersects' would bring more results (9)
-------------------------------------
Operation No. 1:
unknown id, Inverse of UTM zone 8N + Ballpark geographic offset from NAD83(CSRS)v2 to WGS 84 + UTM zone 8N, unknown accuracy, World, has ballpark transformation
For brevity, I have trimmed a bunch of the output, but the ballpark statement doesn't give me confidence... Ballpark? Unknown Accuracy? This probably isn't what you want. In addition, be careful with the geoids because I have seen people misuse the proj library and end up having it apply or remove a geoid by mistake. As you guessed, it will not remove the geoid in your case.
Admittedly, I am a bit of an ellitest when it comes to geodesy and datum transformations. I don't like black boxes and prefer to take direct control by using lasdatum and lasvdatum. But these are commercial tools so a license is necessary and a black box approach won't work with them either. Whatever you do, check your work. Have 3 known points in both coordinate systems and check the results of your workflow before you trust it. Just my 2 cents.
Mike