DOI-USGS / ISIS3

Integrated Software for Imagers and Spectrometers v3. ISIS3 is a digital image processing software package to manipulate imagery collected by current and past NASA and International planetary missions.
https://isis.astrogeology.usgs.gov
Other
200 stars 168 forks source link

Add footprint coordinates for TGO CaSSIS images to exported label #4473

Closed kberryUSGS closed 3 years ago

kberryUSGS commented 3 years ago

Description
Update tgocassisrdrgen to output footprint coordinates which will be added by the UA team to the ISIS Cube labels of CaSSIS images.

Example

Take the following keywords/values from the Archive group of a CaSSIS cube:

Corner1Longitude = <lon1>
Corner1Latitude = <lat1>
.
.
.
Corner4Longitude = <lon4>
Corner4Latitude = <lat4>

and update tgocassisrdrgen to export these values to the PDS4 label it creates.

(Example of desired output forthcoming)

jessemapel commented 3 years ago

@kberryUSGS This issue needs to be better fleshed out with acceptance criteria and/or an example of what should be added to the label. Does the team want WKT polygons, lat and lon ranges, or something else?

We can get it prioritized for work, but we need more details about what the team wants prior to work beginning.

kberryUSGS commented 3 years ago

They'll update the cubes to include the following in the Archive group as part of their pipeline:

Corner1Longitude = <lon1>
Corner1Latitude = <lat1>
.
.
.
Corner4Longitude = <lon4>
Corner4Latitude = <lat4>

These values need to be exported from the ISIS Cube to the PDS4 output label generated by tgocassisrdrgen. (Example of output format forthcoming)

jessemapel commented 3 years ago

@kberryUSGS footprintinit walks across the entire image and then computes a convex hull of those ground points. This algorithm very rarely generates a square. What should the output be if the footprint shape was a more complex polygon than a square?

kberryUSGS commented 3 years ago

@jessemapel I can ask them about how they're doing this, but they're generating the coordinates in their pipeline and adding them to the cube, so the point of this ticket is to take the values they've already calculated and added to the cube label and export them to the PDS4 label in tgocassisrdrgen.

jessemapel commented 3 years ago

As an example, here's a CTX footprint WKT string, from F02_036648_2021_XN_22N022W:

MULTIPOLYGON (((337.7374516871070114 21.3986078626795724, 337.7475738205264975 21.3997760216535653, 337.7576925737984652 21.4009426302452468, 337.7678343844174265 21.4021110818679823, 337.7780100525574767 21.4032831765318683, 337.7882470607524965 21.4044634360399471, 337.7985197308736360 21.4056478743222733, 337.8088105553002265 21.4068337567477940, 337.8191247078146375 21.4080220023175656, 337.8294607621712657 21.4092124663220886, 337.8398167946875787 21.4104049206779692, 337.8501813703459220 21.4115975499188984, 337.8605589209366258 21.4127911542269409, 337.8709492581382960 21.4139857763885715, 337.8812963412619865 21.4151719676281722, 337.8916491785811331 21.4163579924763781, 337.9020192347837224 21.4175458795049529, 337.9124490349915391 21.4187431280034950, 337.9228794503919175 21.4199396605093249, 337.9333026870763774 21.4211341495220431, 337.9437221144013392 21.4223272144336754, 337.9541457723258873 21.4235203406861956, 337.9645880095687289 21.4247162251506360, 337.9750653579692425 21.4259180876884905, 337.9855476931157341 21.4271206157507166, 337.9960202372178628 21.4283211602294941, 338.0064660980435747 21.4295165460935202, 338.0168850117473767 21.4307066492245291, 338.0272561289674513 21.4318872954181927, 338.0376922630049421 21.4330806527745885, 338.0481158794782459 21.4342717857593819, 338.0585032911869234 21.4354558946355844, 338.0688547988544315 21.4366328628495992, 338.0792179163553328 21.4378126098808011, 338.0895885730012651 21.4389946251472310, 338.0999530891508016 21.4401762590037421, 338.1103040858157556 21.4413560893963044, 338.1206367750523896 21.4425331852179717, 338.1309451129035892 21.4437062379712913, 338.1412278805177607 21.4448749937241878, 338.1514840484813362 21.4460392251865670, 338.1617104725551144 21.4471981286989539, 338.1718964198613548 21.4483487213697472, 338.1820458878160593 21.4494917091014727, 338.1921875464062168 21.4506352108823606, 338.2023320570010014 21.4517833476814452, 338.2124714937377234 21.4529351675847337, 338.2225776302304325 21.4540825790744023, 338.2326472288979176 21.4552247919398660, 338.2426800142612251 21.4563620413966980, 338.2526251102718788 21.4574892851967860, 338.2512907968537661 21.4674828628997716, 338.2499662247894321 21.4774378800588686, 338.2486575420549570 21.4873805043019246, 338.2473343121580456 21.4973259148669626, 338.2460122735618029 21.5072704463192323, 338.2446761398409762 21.5172032660045893, 338.2433569625404175 21.5271337365109972, 338.2420459041370577 21.5370775578628262, 338.2407366986624311 21.5470155328524129, 338.2394394633154207 21.5569620321969779, 338.2381307981840450 21.5669093299865757, 338.2368251531244709 21.5768603287654628, 338.2355112499135998 21.5867999480622856, 338.2342080143675958 21.5967377509165992, 338.2329033552331339 21.6066839238946606, 338.2316136498316155 21.6166251870731649, 338.2303179495490895 21.6265830379364878, 338.2290099133284116 21.6365526643368540, 338.2277028986910068 21.6465029757414378, 338.2264038296343074 21.6564433571781159, 338.2251180999539315 21.6663940623044731, 338.2238325874739076 21.6763577351529051, 338.2225209363539875 21.6862911620365750, 338.2212134295422175 21.6962320336567593, 338.2199204258264444 21.7061793348115444, 338.2186279965238782 21.7161198475106154, 338.2173353486988390 21.7260701365747764, 338.2160546203897411 21.7360100327124179, 338.2147665636035185 21.7459635599457002, 338.2134703405724281 21.7559000578208561, 338.2121427834132987 21.7658539893130651, 338.2107914940339697 21.7757926857588231, 338.2094721143577090 21.7857221936993994, 338.2081639067970968 21.7956594127443992, 338.2068326120119082 21.8055973560159835, 338.2055194511011678 21.8155253574395189, 338.2042061692759489 21.8254610910406370, 338.2028970081983630 21.8354109165848520, 338.2015951008477828 21.8453626049902070, 338.2002929112117044 21.8553237819057031, 338.1989891600604778 21.8652667030954397, 338.1976836497649970 21.8752106369877986, 338.1963791007470377 21.8851591655602924, 338.1950931487434673 21.8950910895148603, 338.1937935260611425 21.9050371248791045, 338.1924972843652881 21.9149754039513738, 338.1912034559652511 21.9249215722000201, 338.1899224164043289 21.9348679664607147, 338.1886365403754553 21.9448203772178800, 338.1873472840840122 21.9547855779335848, 338.1860231177213336 21.9647336934406781, 338.1847261231044968 21.9746721280354116, 338.1834225911057388 21.9846229532440418, 338.1821190686436580 21.9945723814392622, 338.1808314755423339 22.0045208547605142, 338.1795423576760982 22.0144719673556288, 338.1782593264109664 22.0244196014854481, 338.1769897465427448 22.0343579081879710, 338.1757049905640429 22.0443082007789677, 338.1744063201977610 22.0542505987087232, 338.1731011144896684 22.0642137067507669, 338.1718371651535904 22.0741736888415545, 338.1705635684626259 22.0841299542685690, 338.1692747086180475 22.0940849063820899, 338.1679979177072255 22.1040253397359869, 338.1667191123738689 22.1139723984305405, 338.1654258717195489 22.1239263026569262, 338.1641431645144849 22.1338703536416830, 338.1628613332908344 22.1438348456651788, 338.1616020672155969 22.1537881787445308, 338.1603323723360859 22.1637435675661187, 338.1590591452517174 22.1737009243665248, 338.1577881136374231 22.1836490952209395, 338.1565153210880794 22.1936053518841376, 338.1552308160456732 22.2035654748019162, 338.1539353920297799 22.2135015756035017, 338.1526764100237870 22.2234580523418188, 338.1513985184857916 22.2334077675383668, 338.1501187140639786 22.2433701911630131, 338.1488449384505088 22.2533323977437121, 338.1475813767769978 22.2632924183382386, 338.1463312119952889 22.2732550836817218, 338.1450570681076329 22.2832069740852461, 338.1438098659729690 22.2931762523037484, 338.1425498115713708 22.3031402126248892, 338.1412653377904007 22.3131019037965359, 338.1399923588031697 22.3230655495006545, 338.1387372441691923 22.3330320613891686, 338.1374563430211992 22.3429916702577529, 338.1361706552197006 22.3529502109754574, 338.1348844610499214 22.3629099679886778, 338.1336145023781796 22.3728561039570835, 338.1323434186857071 22.3828307999154994, 338.1310806278145265 22.3927988759759948, 338.1298046399988948 22.4027525825872580, 338.1285309436593138 22.4127216882818239, 338.1272577803171089 22.4226690916734412, 338.1259922132185238 22.4326343364633445, 338.1247079489337466 22.4425868736860359, 338.1234134024223863 22.4525615213524574, 338.1221426950903606 22.4625191759579153, 338.1208778269895561 22.4724792088422483, 338.1203475525948079 22.4764038478479691, 338.1102433017580324 22.4752714464395211, 338.1001238978624883 22.4741369480151363, 338.0899706371503157 22.4729979591876479, 338.0797850855620368 22.4718546237900405, 338.0695674654414802 22.4707066843284053, 338.0593185056487187 22.4695541349676162, 338.0490373316839623 22.4683965442572173, 338.0387289950778609 22.4672352171789456, 338.0284302646805372 22.4660797258388243, 338.0181340186608736 22.4649270869764308, 338.0078010237996864 22.4637668089062608, 337.9974225820411675 22.4625970718323948, 337.9870477337632906 22.4614298252235649, 337.9766698324360732 22.4602630131321028, 337.9662852884137578 22.4590955075066923, 337.9559011378976265 22.4579286422754656, 337.9454696963460378 22.4567518976458480, 337.9349463066823205 22.4555562151702794, 337.9244989923690241 22.4543772243227373, 337.9140896976149406 22.4532061123083935, 337.9036136870369091 22.4520213403402806, 337.8930984275234550 22.4508288145737964, 337.8826324421171421 22.4496459612239043, 337.8720843878634241 22.4484470127153131, 337.8617031398260337 22.4472796840488797, 337.8511418246192193 22.4460776885920552, 337.8406166545318001 22.4448822054758352, 337.8301015378560805 22.4436881276935445, 337.8196042772088390 22.4424967308801477, 337.8091096986652246 22.4413051226590916, 337.7986035372504716 22.4401106919406850, 337.7880839558647494 22.4389131163335875, 337.7775486286999467 22.4377119971199157, 337.7670020918401974 22.4365081356700813, 337.7565393442611139 22.4353178648484430, 337.7460254775927524 22.4341177763568425, 337.7354083850796087 22.4328991937651558, 337.7248060602522628 22.4316822962642917, 337.7142253987410641 22.4304681283746064, 337.7037373412496208 22.4292683514485347, 337.6932968038696004 22.4280751895281654, 337.6830098509757931 22.4269058768016833, 337.6726616723459529 22.4257248964029650, 337.6620833714675314 22.4245049837369805, 337.6515247857490181 22.4232870436738629, 337.6410165245536632 22.4220758962446212, 337.6306889194343057 22.4208922130289601, 337.6205070043969840 22.4197299812019004, 337.6103512424832616 22.4185699232891764, 337.6001908022561224 22.4174044023090779, 337.6014198139852738 22.4073960078431149, 337.6025731210486356 22.3974063879263383, 337.6036303759537986 22.3873947505456066, 337.6048776170375163 22.3774311426414343, 337.6061915063558558 22.3674707793045329, 337.6074407786272218 22.3575174476794736, 337.6087048033538736 22.3475473313778288, 337.6099985710133637 22.3375928306642351, 337.6112904937876351 22.3276336597810321, 337.6125917023471175 22.3176694118487227, 337.6138970343296251 22.3077078566282125, 337.6152279675328032 22.2977565257223098, 337.6165790910414444 22.2878129828171119, 337.6179196556876718 22.2778549408275701, 337.6192338844630854 22.2678975606561451, 337.6205565038827103 22.2579325356859670, 337.6218919594047634 22.2479811000111738, 337.6232131252281761 22.2380153095875919, 337.6245119959995691 22.2280516283604506, 337.6258292758951143 22.2180993223338454, 337.6271623443388989 22.2081539257411720, 337.6284959027256036 22.1982099107241062, 337.6298358015337158 22.1882515526536217, 337.6311673074646933 22.1782979912427400, 337.6325020003737336 22.1683440585853191, 337.6338279117096022 22.1583944384475515, 337.6351423510506606 22.1484470895161856, 337.6364959424515746 22.1385012963404506, 337.6378431585528119 22.1285518646801478, 337.6391674789971944 22.1186034587294387, 337.6404951335647411 22.1086604098610984, 337.6418195441271450 22.0987006803023540, 337.6431297520396697 22.0887618834564385, 337.6444655894824791 22.0787963145192201, 337.6458430062444336 22.0688608163859072, 337.6472411972413852 22.0589227131345744, 337.6485942564680158 22.0489791428633630, 337.6498910285161514 22.0390383064731843, 337.6511798937751223 22.0290783698353039, 337.6524918884951489 22.0191235386503052, 337.6538141756215623 22.0091722214287948, 337.6551620473269395 21.9992167107396597, 337.6565141609957550 21.9892645537771898, 337.6578665291950756 21.9793162712156018, 337.6592009136416550 21.9693775284855484, 337.6605056870188832 21.9594388758591137, 337.6618371657099829 21.9494870376124069, 337.6631587408611495 21.9395360995659701, 337.6645023484242074 21.9295927810491662, 337.6658586493234111 21.9196406427276322, 337.6672066467314153 21.9097025451504486, 337.6685866711304129 21.8997616548009724, 337.6699324326320379 21.8897994569052194, 337.6712681086536918 21.8798530877901278, 337.6725985552915859 21.8698975768284392, 337.6739358713912793 21.8599548510391308, 337.6752783265516200 21.8500122942249639, 337.6766271307542411 21.8400682951483098, 337.6779720971699703 21.8301264451097765, 337.6793159661895629 21.8201932060960999, 337.6806611929438304 21.8102373356149464, 337.6820217623726990 21.8003054078637994, 337.6833601525449922 21.7903453196817338, 337.6846991736377390 21.7803740800536971, 337.6860412448531292 21.7704287560884850, 337.6873877995959674 21.7604797367995779, 337.6887453408427859 21.7505479205774854, 337.6901233258259936 21.7406048368690925, 337.6914993851571580 21.7306671154520288, 337.6928769612928249 21.7207389454633990, 337.6942935657592670 21.7107918191212192, 337.6957113356354512 21.7008474201210788, 337.6970964632133700 21.6909067407406333, 337.6984497987444342 21.6809682670789208, 337.6997901462910363 21.6710180291335455, 337.7011377177683471 21.6610727868682176, 337.7024647610201100 21.6511389110822989, 337.7038100587124063 21.6411923223265497, 337.7051697141776572 21.6312445489527612, 337.7065720832683269 21.6213167905096242, 337.7079409526926383 21.6113702303894897, 337.7093104019617158 21.6014169127200368, 337.7106406286023343 21.5914712596838108, 337.7119733442754068 21.5815210849056527, 337.7133278377343117 21.5715526754296931, 337.7146668088380466 21.5616001692956161, 337.7160129544522533 21.5516465139171736, 337.7173567360509310 21.5417043055534236, 337.7186935848934013 21.5317572440260712, 337.7200343479827893 21.5218124563284015, 337.7214121509737765 21.5118700455192382, 337.7227660545257777 21.5019114513291001, 337.7240818132115692 21.4919653798833643, 337.7254026850089872 21.4820155448593049, 337.7267452266784744 21.4720702423783827, 337.7280977855475612 21.4621219699344579, 337.7295133060640069 21.4522056257756653, 337.7309940825422814 21.4422695451272887, 337.7324977441847409 21.4323386544879213, 337.7339308225393779 21.4224039456043194, 337.7353589347810043 21.4124566972309189, 337.7368319064017896 21.4025267512416448, 337.7374516871070114 21.3986078626795724)))

CaSSIS footprints will likely be simpler as we process each framelet as a separate image so you don't get time dependent changes in the boundary, but there is still distortion and the effects of the DEM you orthorectify onto.

kberryUSGS commented 3 years ago

Example of output PDS4 format, now confirmed!

<Observation_Area>

  <Discipline_Area>

    <geom:Geometry>

      <geom:Geometry_Orbiter>

        <geom:Surface_Geometry>

          <geom:Surface_Geometry_Specific>

            <geom:Footprint_Vertices>

              <geom:Pixel_Intercept>
                <geom:reference_pixel_location>Lower Left Corner</geom:reference_pixel_location>
                <geom:pixel_latitude unit="deg">-37.091133</geom:pixel_latitude>
                 <geom:pixel_longitude unit="deg">192.083319</geom:pixel_longitude>
               </geom:Pixel_Intercept>
kberryUSGS commented 3 years ago

It was decided via email that it doesn't matter (for now) which corner is assigned to each lat/lon (i.e it's okay if the "upper left corner" isn't actually the upper-left corner,) what matters is that the footprint is defined, not which corner is which.

jlaura commented 3 years ago

@kberryUSGS I see a PR open for this. Can that PR be merged and this issue closed?

kberryUSGS commented 3 years ago

Closed by #4508