OpenALPR Tool - Save and Query CSV Exports

One More Update
Automation added to allow automated Forensic backlog entry & daily report.
Check the appropriate boxes.
Use "Simulate Midnight Tasks" to run ad-hoc update & e-mail to simulate what will happen at Midnight.

Before you enable this, please be sure you've:
  1. Tested individual Forensic loading
  2. Ran the "Load Historic Plates" one time to get your current large backlog finished
  3. Set up and tested your email configuration
New options on the Settings Page
1603047051500.png

Between Midnight and 12:05am...
If Daily Forensic Update is checked, your system will update any new (unique/distinct) plates to pull in the VIN/Make/Model.
If Daily Report Email is checked, your system will e-mail you the report for the day that just ended.

The Daily Report you would get would look something like this.
1603047409408.png

To be clear, this will require you keep the LPR Viewer app running (if you want the automation). While this may not be ideal for everyone, it was both easier and safer to implement this way. I did not want to add additional functionality like this into the Downloader and add complexity/risk to that crashing.
 
Thank you so much Gymratz that was lot of hours you put in this weekend really appreciate it a lot ! Also wanted to update the Midnight Task under viewer for reporting / load work perfectly fine as scheduled since I left the viewer running to see. :)
 
@Gymratz Thank you for all the hard work you're putting into this. The latest update is awesome!

I have some suggestions if you're open for them. I check plates throughout the day and since I'm not at home I'm checking on OpenALPR's website, sometimes I correct plates on OpenALPR's website but obviously the downloader has already picked it up so I have to end up fixing it at home as well. Is it possible for the downloader to check for changes after downloading if I change it on OpenALPR's website?

Is it possible to add direction as one of the things that gets added to the database?

Would it be possible to add search for description on the viewer?

Are you taking donations? I owe you a beer.
 
Last edited:
  • Like
Reactions: samplenhold
Always open to suggestions, @Sprite - what I do will be at least partially guided by "Would I use this" -- if I wouldn't use it myself, it will have to be a lost easier/faster to implement to be worth it!

Direction
The direction is already being saved in the database as direction_of_travel_degrees -- how/where would it be used though? Where to display, and how to display it? Would probably be a minor update (if I got it to work, just require pulling down the code again).
@Sprite Any thoughts on how you'd like to see it displayed?

Description Search
Would require an update to SQL Stored Procedure - more for you to update once done. Easy enough to implement though.
@Sprite Would you see it as a separate box, or would the "Plate Search" search both Plate & Description and return entries that matched either?

Plate Updates
Full disclosure - this would be pretty far down my list as it isn't anything I'd use. I don't ever log into the full interface!
My personal / suggested workflow... Fixing in the LPR Viewer app is easy, and has functionality to always fix the same mistake. So if your system is consistently getting the same few LPs wrong, it will correct on import.

That being said, in case this is something that is easier than I'm initially thinking...
Concerns I have:
  • I only pull from the website a big enough period to cover the current "timer" setting. So it's not even grabbing plates that came in earlier that you fixed.
  • Maybe a "Daily Update" type of thing...
    • But that would break any changes made in the local application
    • Such as plate changes, plate deletions, etc.
Because of those, I'm not really sure where I'd put the code in to handle your workflow, that wouldn't cause more issues than it would fix.
If you have thoughts on a workflow / pseudocode, let me know. Open to considering it.
 
I guess here is an idea, If we are going to search description field or say any field design can look possibly something like this just a thought..

1603154346409.jpeg
It is just a quick Photoshop "Pictures worth a thousand word" but basically you choose the field on the right to search in.. Say whether it is plate, Description, Model, Make, Or VIN etc.. and just type and search.. Just an idea again..

Thanks gymratz I already am loving the software the past 24 hours that I been running I think it has become the most used software for past 24 hours for me since its so cool to do what we can now :) The capabilities are amazing :) I was setting alerts/tags for some of my vendors :p
 
Always open to suggestions, @Sprite - what I do will be at least partially guided by "Would I use this" -- if I wouldn't use it myself, it will have to be a lost easier/faster to implement to be worth it!

Direction
The direction is already being saved in the database as direction_of_travel_degrees -- how/where would it be used though? Where to display, and how to display it? Would probably be a minor update (if I got it to work, just require pulling down the code again).
@Sprite Any thoughts on how you'd like to see it displayed?

Description Search
Would require an update to SQL Stored Procedure - more for you to update once done. Easy enough to implement though.
@Sprite Would you see it as a separate box, or would the "Plate Search" search both Plate & Description and return entries that matched either?

Plate Updates
Full disclosure - this would be pretty far down my list as it isn't anything I'd use. I don't ever log into the full interface!
My personal / suggested workflow... Fixing in the LPR Viewer app is easy, and has functionality to always fix the same mistake. So if your system is consistently getting the same few LPs wrong, it will correct on import.

That being said, in case this is something that is easier than I'm initially thinking...
Concerns I have:
  • I only pull from the website a big enough period to cover the current "timer" setting. So it's not even grabbing plates that came in earlier that you fixed.
  • Maybe a "Daily Update" type of thing...
    • But that would break any changes made in the local application
    • Such as plate changes, plate deletions, etc.
Because of those, I'm not really sure where I'd put the code in to handle your workflow, that wouldn't cause more issues than it would fix.
If you have thoughts on a workflow / pseudocode, let me know. Open to considering it.

Direction - For me personally I have direction setup if they're coming into my street or out of it (one way in and out). I was thinking, add another column between Plate and Description on the viewer.
direction.jpg

Description search- I say the same search box for plate search, but a drop down box for what you want to search for, by plate, description, car, VIN, etc.

Plate updates- I understand, not a huge deal. My camera for the most part picks up on plates correctly for the most part, I'm just being extra haha.

A couple of other questions, is it possible to change the region of a plate once it's logged? Sometimes when the plates are logged incorrectly they are assigned an incorrect state/region. Is it possible to have the viewer use 24-hour time format?
 
@Sprite and/or @tech101 - how many total "Directions" can cars be going in your setup?
The direction is stored simply as a degrees value - I'm thinking the easiest way to do this would be three values.
Value_1 -- Description_1
Value_2 -- Description_2
Description_3

If travel_degrees <= Value_1 then Description_1
elseif travel_degrees <= Value_2 then Description_2
else Description_3

Reason for the three, is that "going" might not be a simple range of 1-180 degrees, it might be 50-200, and then 0-49 & 201-360 are the other direction.

So for me, I might have

100 - Going
280 - Coming
Going

Would there be any need for more complexity though? Do you have cars that can go 4 directions and need to account for a bunch of degree ranges?
 
  • Like
Reactions: tech101
Would there be any need for more complexity though? Do you have cars that can go 4 directions and need to account for a bunch of degree ranges?
On my setup, cars can go basically N, S, E, or W. I live on a corner and the top of the 'T' is basically E-W, and the vertical of the 'T' is N-S. With two cams, cars get read in all directions. Just an FYI.
 
@Sprite and/or @tech101 - how many total "Directions" can cars be going in your setup?
The direction is stored simply as a degrees value - I'm thinking the easiest way to do this would be three values.
Value_1 -- Description_1
Value_2 -- Description_2
Description_3

If travel_degrees <= Value_1 then Description_1
elseif travel_degrees <= Value_2 then Description_2
else Description_3

Reason for the three, is that "going" might not be a simple range of 1-180 degrees, it might be 50-200, and then 0-49 & 201-360 are the other direction.

So for me, I might have

100 - Going
280 - Coming
Going

Would there be any need for more complexity though? Do you have cars that can go 4 directions and need to account for a bunch of degree ranges?




While Directions are nice. I just wanna take the time to thank you to even consider this you had put lot of time lately already into this so thank you. I have not even give direction thought prior to this but could be nice to know Entering leaving and stuff. Gymratz also wanna let you know :) I been running the downloader/viewer non stop ::) No issues so far rock solid thank you!!! Ah one think since now we are leaving viewer running could be refresh automatically .. But That will than have to move date search ranges as well.. Since now we are running that for midnight tasks..
 
I had tried to fathom the direction of travel degree markers last year, and couldn't understand how the degrees corresponded to directions. My LPR camera is looking down a curved street, where both oncoming and outgoing cars are alternating between seeing the left side and the right side, as well as head-on and straight back. In addition, there are neighbors who turn perpendicular to park in their driveways. I did a quick survey below to document the degree markers with their apparent view in the snapshots.

OpenALPR_Directions_survey.png
 
  • Like
Reactions: tech101
Hello,
I am at a lost now with this Downloader. I cannot get it to run or download a CVS file. Grey screen and everything is properly installed. Can anyone help me. I can give you access with my teamviewer.

Thanks
 
Hello,
I am at a lost now with this Downloader. I cannot get it to run or download a CVS file. Grey screen and everything is properly installed. Can anyone help me. I can give you access with my teamviewer.

Thanks

Are you able to manually download the CSV files from the OpenALPR website?
 
  • Like
Reactions: tech101
Hi

My downloader is also not working. It just show imported 0 skipped 0.
I can download the csv file manually and upload it and it shows in the viewer ok.
I am in the UK and think it has something to do with the times but have no idea were
to change them
 
While the Downloader is saying 0 imported, can you use the SQL management program to view the table data, and confirm there are records being downloaded?
 
  • Like
Reactions: tech101
Hi Dlong62
No nothing is being loaded into sql database unless I do it manually
 
Last edited:
I left the lprdownloader running for the last 48 hours and I get imported 0 skipped 0
until midnight then it downloads the days plates then goes back to imported 0 skipped 0

lprdownloader.jpg
 
Interesting your import is working and when a new plate comes in it does not import automatically you saying ? seems from your screen shot it is working.
 
Good News: My daily "Restart" of the internals in the downloader is working!

You can download manually and import, good.
It does the daily catchup, good.
Though, that might actually help identify the issue. That "Daily Catchup" is supposed to be a 48 hour lookback. Considering it had "zero dupes" - I'm assuming it's only getting a 24 hour lookback. Probably something with date/time, as you mentioned.

I think the best way to resolve would be to debug the app and see what link/format it creates for the URL.
Manually download for the same period and see what link/format is used. Find the difference, and can correct in the code.

Here is the section I'd recommend putting "breaks" in - step through it to see the URL that is being created. Hopefully that will end up making it evident what the issue is. Might be as simple as changing the date format string.

1604628728838.png
 
  • Like
Reactions: tech101
1604629423407.png

Ok so something must be there. I did a manual download and uploaded that. Nothing appeared to happen but when I did the same thing I got the 1920 skipped message, so it must have taken. I restarted the computer and got the 555 skipped message, so it must be doing the look back as well. Still not getting any indication it is importing anything at all.

I'm logged in and can see the openalpr dashboard in the downloader.


I'm going to leave it running and see if I get the same result as @riluxg